Added somcli. Updated whole lot of stuff. Added game binds to hyprland (stlil have to add steam). Added minimal nixos config. Combined pipewire sink. Todo list. Beginning of server config
This commit is contained in:
parent
c48b41c250
commit
58dcc86ca8
18 changed files with 280 additions and 26 deletions
107
flake.lock
generated
107
flake.lock
generated
|
|
@ -189,6 +189,24 @@
|
|||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": [
|
||||
"stylix",
|
||||
|
|
@ -347,6 +365,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739824009,
|
||||
"narHash": "sha256-fcNrCMUWVLMG3gKC5M9CBqVOAnJtyRvGPxptQFl5mVg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"rev": "e5130d37369bfa600144c2424270c96f0ef0e11d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nil": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
|
|
@ -470,6 +506,35 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1741516043,
|
||||
"narHash": "sha256-Hv0S630U4GVZBM1Q+NCEwyN5ct7cic+8r6qLIaUaVqI=",
|
||||
"path": "/nix/store/5nkj4k35df77lwjwvbs6hmpkqhpc5x0c-source",
|
||||
"rev": "8adda98a4e637d0d8a867f19ace5ed6680ecc94a",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1742707865,
|
||||
"narHash": "sha256-RVQQZy38O3Zb8yoRJhuFgWo/iDIDj0hEdRTVfhOtzRk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dd613136ee91f67e5dba3f3f41ac99ae89c5406b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1740367490,
|
||||
"narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=",
|
||||
|
|
@ -557,6 +622,7 @@
|
|||
"nixcord": "nixcord",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nvf": "nvf",
|
||||
"somcli": "somcli",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
|
|
@ -582,6 +648,26 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"somcli": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743031501,
|
||||
"narHash": "sha256-LF4J5P+tDhEv3els7PIBa+2+peSeURNzx4I1MwCHWy8=",
|
||||
"owner": "jsw08",
|
||||
"repo": "somcli",
|
||||
"rev": "aa84a75691e3098000e7b885b966d7af1e81318f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jsw08",
|
||||
"repo": "somcli",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
|
|
@ -590,13 +676,13 @@
|
|||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"git-hooks": "git-hooks",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nur": "nur",
|
||||
"systems": "systems_4",
|
||||
"systems": "systems_5",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
|
|
@ -676,6 +762,21 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
|
|||
|
|
@ -45,5 +45,6 @@
|
|||
};
|
||||
|
||||
nixcord.url = "github:kaylorben/nixcord";
|
||||
somcli.url = "github:jsw08/somcli";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,5 +8,17 @@
|
|||
home.packages = lib.mkIf osConfig.niksos.games [
|
||||
pkgs.dolphin-emu
|
||||
pkgs.suyu
|
||||
|
||||
# (
|
||||
# pkgs.appimageTools.wrapType1 rec {
|
||||
# pname = "nx-optimizer";
|
||||
# version = "3.0.1";
|
||||
#
|
||||
# src = pkgs.fetchurl {
|
||||
# url = "https://github.com/MaxLastBreath/TOTK-mods/releases/download/manager-3.0.1/NX.Optimizer.3.0.1.AppImage";
|
||||
# hash = "sha256-2InXpoLm4bfuj0FYRXruRxggBA/E6XiJFeuNbyAMk5s=";
|
||||
# };
|
||||
# }
|
||||
# )
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
{inputs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
osConfig,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.nixcord.homeManagerModules.nixcord];
|
||||
|
||||
programs.nixcord = {
|
||||
enable = true;
|
||||
enable = osConfig.niksos.neovim;
|
||||
|
||||
discord.enable = false;
|
||||
vesktop.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,19 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
osConfig,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
home.packages =
|
||||
[
|
||||
pkgs.gh
|
||||
pkgs.ripgrep
|
||||
|
||||
pkgs.ear2ctl # FIXME: only when bluetooth enabled
|
||||
pkgs.bluetui
|
||||
|
||||
pkgs.typst #FIXME: move to flake shell
|
||||
]
|
||||
++ lib.optionals osConfig.niksos.desktop [
|
||||
inputs.somcli.defaultPackage.${pkgs.system}
|
||||
]
|
||||
++ lib.optionals osConfig.niksos.bluetooth [
|
||||
pkgs.ear2ctl
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
{
|
||||
programs.yazi.enable = true;
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
osConfig,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) getExe;
|
||||
|
|
@ -20,7 +21,7 @@
|
|||
termapp = termapp: "${foot} '${termapp}'";
|
||||
termappE = termappE: termapp (getExe termappE);
|
||||
|
||||
foot = appE pkgs.foot;
|
||||
foot = appE config.programs.foot.package;
|
||||
fuzzel = appE config.programs.fuzzel.package;
|
||||
firefox = appE config.programs.firefox.package;
|
||||
playerctl = appE pkgs.playerctl;
|
||||
|
|
@ -33,6 +34,16 @@
|
|||
bluetui = termappE pkgs.bluetui;
|
||||
nmtui = termapp "${pkgs.networkmanager}/bin/nmtui";
|
||||
|
||||
somcli = let
|
||||
interactiveSom = pkgs.writeShellScriptBin "somcli" ''
|
||||
${getExe inputs.somcli.defaultPackage.${pkgs.system}} && sleep 5
|
||||
'';
|
||||
termSom = pkgs.writeShellScriptBin "somfoot" ''
|
||||
${foot} -a "foot-somcli" ${getExe interactiveSom}
|
||||
'';
|
||||
in
|
||||
appE termSom;
|
||||
|
||||
# toggle = program: let
|
||||
# prog = builtins.substring 0 14 program;
|
||||
# in "pkill ${prog} || ${uwsm} app -- ${program}";
|
||||
|
|
@ -77,6 +88,7 @@ in {
|
|||
"$mod, Return, exec, ${foot}"
|
||||
"$mod Shift, Return, exec, ${firefox}"
|
||||
"$mod, Escape, exec, ${hyprlock}"
|
||||
"$mod Shift, S, exec, ${somcli}"
|
||||
|
||||
"$mod, A, exec, ${pulsemixer}"
|
||||
"$mod, B, exec, ${bluetui}"
|
||||
|
|
@ -98,7 +110,14 @@ in {
|
|||
"$mod SHIFT, k, movewindow, u"
|
||||
"$mod SHIFT, j, movewindow, d"
|
||||
]
|
||||
++ workspaces;
|
||||
++ workspaces
|
||||
++ lib.optionals osConfig.niksos.games (let
|
||||
suyu = "${appE pkgs.suyu} -ql";
|
||||
dolphin = appE pkgs.dolphin-emu;
|
||||
in [
|
||||
"Super, s, exec, ${suyu}"
|
||||
"Super, d, exec, ${dolphin}"
|
||||
]);
|
||||
|
||||
bindl = [
|
||||
# media controls
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 5;
|
||||
|
|
@ -86,7 +90,10 @@
|
|||
};
|
||||
|
||||
windowrulev2 = [
|
||||
# FIXME: change to `windowrule` after hyprland update.
|
||||
"float, class:com.github.phase1geo.annotator"
|
||||
"float, class:foot-somcli"
|
||||
"size >30% >30%, class:foot-somcli"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ in {
|
|||
flake = let
|
||||
systems = [
|
||||
"laptop"
|
||||
"minimal"
|
||||
];
|
||||
in {
|
||||
# Systems
|
||||
|
|
@ -45,10 +46,16 @@ in {
|
|||
modules
|
||||
++ [
|
||||
{
|
||||
boot.plymouth.enable = false;
|
||||
services.fwupd.enable = false;
|
||||
networking.hostName = "vm";
|
||||
nixpkgs.hostPlatform = pkgs.system;
|
||||
|
||||
boot.plymouth.enable = lib.mkForce false;
|
||||
niksos = {
|
||||
desktop = true;
|
||||
neovim = true;
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = pkgs.system;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
users.groups.libvirtd.members = ["jsw"];
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
virtualisation.spiceUSBRedirection.enable = true;
|
||||
|
||||
virtualisation.podman.enable = true;
|
||||
}
|
||||
|
|
|
|||
14
hosts/minimal/default.nix
Normal file
14
hosts/minimal/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
boot.plymouth.enable = false;
|
||||
services.fwupd.enable = false;
|
||||
|
||||
# Other stuff that's enabled by default because i'll use it but it's still bloat is (note that this list shares a lot of resources):
|
||||
# - graphics drivers (~1.8gb)
|
||||
# - networkmanager (~1.25gb)
|
||||
# - polkit (~1.25gb)
|
||||
# - other stuff.. total: 4.68gb
|
||||
}
|
||||
32
hosts/minimal/hardware-configuration.nix
Normal file
32
hosts/minimal/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||
|
||||
boot.initrd.availableKernelModules = ["xhci_pci" "virtio_pci" "virtio_scsi" "usbhid"];
|
||||
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/NIXROOT";
|
||||
fsType = "btrfs";
|
||||
options = ["noatime" "discard" "compress=zstd"];
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-label/NIXBOOT";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
|
|
@ -1,8 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
plymouth = config.boot.plymouth.enable;
|
||||
in {
|
||||
boot = {
|
||||
bootspec.enable = true;
|
||||
|
||||
|
|
@ -15,7 +18,7 @@
|
|||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
consoleLogLevel = 3;
|
||||
kernelParams = [
|
||||
kernelParams = lib.mkIf plymouth [
|
||||
"quiet"
|
||||
"systemd.show_status=auto"
|
||||
"rd.udev.log_level=3"
|
||||
|
|
@ -30,6 +33,6 @@
|
|||
timeout = 0;
|
||||
};
|
||||
|
||||
plymouth.enable = true;
|
||||
plymouth.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,5 +60,8 @@
|
|||
gamescopeSession.enable = true;
|
||||
};
|
||||
};
|
||||
environment.variables = {
|
||||
"STEAM_FORCE_DESKTOP_UI_SCALING" = "1.5";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
3
system/server/caddy.nix
Normal file
3
system/server/caddy.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{config, ...}: {
|
||||
niksos.server.enable = config.niksos.server.enable;
|
||||
}
|
||||
4
system/server/default.nix
Normal file
4
system/server/default.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{lib, ...}: {
|
||||
imports = [./caddy.nix];
|
||||
options.niksos.server.enable = lib.mKEnableOption "server servcies (such as caddy).";
|
||||
}
|
||||
|
|
@ -5,12 +5,46 @@
|
|||
...
|
||||
}: {
|
||||
config = lib.mkIf config.niksos.desktop {
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
jack.enable = true;
|
||||
pulse.enable = true;
|
||||
|
||||
extraConfig.pipewire = {
|
||||
"10-combined-sink" = {
|
||||
"context.modules" = [
|
||||
{
|
||||
name = "libpipewire-module-combine-stream";
|
||||
args = {
|
||||
"combine.mode" = "sink";
|
||||
"node.name" = "combined_sink";
|
||||
"node.description" = "All audio outputs combined.";
|
||||
"combine.latency-compensate" = false;
|
||||
"combine.props" = {
|
||||
"audio.position" = ["FL" "FR"];
|
||||
};
|
||||
"stream.props" = {};
|
||||
"stream.rules" = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
"media.class" = "Audio/Sink";
|
||||
}
|
||||
];
|
||||
actions = {
|
||||
create-stream = {};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [pkgs.pulsemixer];
|
||||
|
|
|
|||
1
todo.txt
Normal file
1
todo.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Import modules at flake instead of per file
|
||||
Loading…
Add table
Add a link
Reference in a new issue