This commit is contained in:
dusk 2022-03-09 23:55:02 +03:00
parent 8d07c29d66
commit 8a3b7aaa57
Signed by: dusk
GPG Key ID: 1D8F8FAF2294D6EA
43 changed files with 1585 additions and 1708 deletions

View File

@ -3,15 +3,13 @@
lib,
budUtils,
...
}:
{
bud.cmds =
with pkgs; {
get = {
writer = budUtils.writeBashWithPaths [nixUnstable git coreutils];
synopsis = "get [DEST]";
help = "Copy the desired template to DEST";
script = ./get.bash;
};
}: {
bud.cmds = with pkgs; {
get = {
writer = budUtils.writeBashWithPaths [nixUnstable git coreutils];
synopsis = "get [DEST]";
help = "Copy the desired template to DEST";
script = ./get.bash;
};
};
}

View File

@ -3,15 +3,14 @@ let
default = (import ./lib/compat).defaultNix;
ciSystems = ["aarch64-linux" "i686-linux" "x86_64-linux"];
filterSystems = lib.filterAttrs (system: _: lib.elem system ciSystems);
recurseIntoAttrsRecursive =
lib.mapAttrs (_: v:
if lib.isAttrs v
then recurseIntoAttrsRecursive (lib.recurseIntoAttrs v)
else v);
recurseIntoAttrsRecursive = lib.mapAttrs (_: v:
if lib.isAttrs v
then recurseIntoAttrsRecursive (lib.recurseIntoAttrs v)
else v);
systemOutputs =
lib.filterAttrs
(name: set: lib.isAttrs set && lib.any (system: set ? ${system} && name != "legacyPackages") ciSystems)
default.outputs;
ciDrvs = lib.mapAttrs (_: system: filterSystems system) systemOutputs;
in
(recurseIntoAttrsRecursive ciDrvs) // { shell = import ./shell.nix; }
(recurseIntoAttrsRecursive ciDrvs) // {shell = import ./shell.nix;}

View File

@ -8,11 +8,11 @@
]
},
"locked": {
"lastModified": 1645729578,
"narHash": "sha256-SQEbg+hHG2Q1zU/Oqjj5LK2X/lmjJoBprm4eYORk0UU=",
"lastModified": 1646360966,
"narHash": "sha256-fJ/WHSU45bMJRDqz9yA3B2lwXtW5DKooU+Pzn13GyZI=",
"owner": "kamadorueda",
"repo": "alejandra",
"rev": "08627c847e250b3eb654c6febeffaa0626fa8473",
"rev": "511c3f6a88b6964e1496fb6f441f4ae5e58bd3ea",
"type": "github"
},
"original": {

192
flake.nix
View File

@ -34,106 +34,102 @@
inputs.nixpkgs.follows = "nixos";
};
};
outputs =
outputs = {
self,
digga,
nixos,
home,
nixos-hardware,
nixosPersistence,
nixpkgsWayland,
rnixLsp,
alejandra,
...
} @ inputs:
digga.lib.mkFlake
{
self,
digga,
nixos,
home,
nixos-hardware,
nixosPersistence,
nixpkgsWayland,
rnixLsp,
alejandra,
...
}
@ inputs:
digga.lib.mkFlake
{
inherit self inputs;
channelsConfig = { allowUnfree = true; };
channels = {
nixos = {
imports = [(digga.lib.importOverlays ./overlays)];
overlays = [
nixpkgsWayland.overlay
(
_: prev: {
#helix = helix.packages.${prev.system}.helix;
#helix-src = prev.helix.src;
#rnix-lsp = rnixLsp.packages.${prev.system}.rnix-lsp;
}
)
(
_: prev: {
alejandra = alejandra.defaultPackage.${prev.system};
remarshal =
prev.remarshal.overrideAttrs
(
old: {
postPatch =
''
substituteInPlace pyproject.toml \
--replace "poetry.masonry.api" "poetry.core.masonry.api" \
--replace 'PyYAML = "^5.3"' 'PyYAML = "*"' \
--replace 'tomlkit = "^0.7"' 'tomlkit = "*"'
'';
}
);
}
)
./pkgs/default.nix
];
};
};
lib = import ./lib { lib = digga.lib // nixos.lib; };
sharedOverlays = [
(
_: prev: {
__dontExport = true;
lib = prev.lib.extend (_: _: { our = self.lib; });
}
)
];
inherit self inputs;
channelsConfig = {allowUnfree = true;};
channels = {
nixos = {
hostDefaults = {
system = "x86_64-linux";
channelName = "nixos";
imports = [(digga.lib.importExportableModules ./modules)];
modules = [
{ lib.our = self.lib; }
digga.nixosModules.bootstrapIso
digga.nixosModules.nixConfig
home.nixosModules.home-manager
nixosPersistence.nixosModules.impermanence
];
};
imports = [(digga.lib.importHosts ./hosts)];
hosts = {};
importables = rec {
profiles =
(digga.lib.rakeLeaves ./profiles)
// {
users = digga.lib.rakeLeaves ./users;
nixos-hardware = nixos-hardware.nixosModules;
};
suites =
with profiles; {
base = [cachix core users.root];
work = [users.patriot develop];
};
};
imports = [(digga.lib.importOverlays ./overlays)];
overlays = [
nixpkgsWayland.overlay
(
_: prev: {
#helix = helix.packages.${prev.system}.helix;
#helix-src = prev.helix.src;
#rnix-lsp = rnixLsp.packages.${prev.system}.rnix-lsp;
}
)
(
_: prev: {
alejandra = alejandra.defaultPackage.${prev.system};
remarshal =
prev.remarshal.overrideAttrs
(
old: {
postPatch = ''
substituteInPlace pyproject.toml \
--replace "poetry.masonry.api" "poetry.core.masonry.api" \
--replace 'PyYAML = "^5.3"' 'PyYAML = "*"' \
--replace 'tomlkit = "^0.7"' 'tomlkit = "*"'
'';
}
);
}
)
./pkgs/default.nix
];
};
home = {
imports = [(digga.lib.importExportableModules ./users/modules)];
modules = [];
importables = rec {
profiles = digga.lib.rakeLeaves ./users/profiles;
suites = with profiles; rec { base = [direnv git starship]; };
};
};
devshell = ./shell;
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {};
};
lib = import ./lib {lib = digga.lib // nixos.lib;};
sharedOverlays = [
(
_: prev: {
__dontExport = true;
lib = prev.lib.extend (_: _: {our = self.lib;});
}
)
];
nixos = {
hostDefaults = {
system = "x86_64-linux";
channelName = "nixos";
imports = [(digga.lib.importExportableModules ./modules)];
modules = [
{lib.our = self.lib;}
digga.nixosModules.bootstrapIso
digga.nixosModules.nixConfig
home.nixosModules.home-manager
nixosPersistence.nixosModules.impermanence
];
};
imports = [(digga.lib.importHosts ./hosts)];
hosts = {};
importables = rec {
profiles =
(digga.lib.rakeLeaves ./profiles)
// {
users = digga.lib.rakeLeaves ./users;
nixos-hardware = nixos-hardware.nixosModules;
};
suites = with profiles; {
base = [cachix core users.root];
work = [users.patriot develop];
};
};
};
home = {
imports = [(digga.lib.importExportableModules ./users/modules)];
modules = [];
importables = rec {
profiles = digga.lib.rakeLeaves ./users/profiles;
suites = with profiles; rec {base = [direnv git starship];};
};
};
devshell = ./shell;
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {};
};
}

View File

@ -1,12 +1,8 @@
{
suites,
...
}:
{
{suites, ...}: {
### root password is empty by default ###
imports = suites.base;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.networkmanager.enable = true;
fileSystems."/" = { device = "/dev/disk/by-label/nixos"; };
fileSystems."/" = {device = "/dev/disk/by-label/nixos";};
}

View File

@ -1,8 +1,4 @@
{
profiles,
...
}:
{
{profiles, ...}: {
# build with: `bud build bootstrap bootstrapIso`
# reachable on the local link via ssh root@fe80::47%eno1
# where 'eno1' is replaced by your own machine's network
@ -16,5 +12,5 @@
];
boot.loader.systemd-boot.enable = true;
# will be overridden by the bootstrapIso instrumentation
fileSystems."/" = { device = "/dev/disk/by-label/nixos"; };
fileSystems."/" = {device = "/dev/disk/by-label/nixos";};
}

View File

@ -6,8 +6,7 @@
suites,
profiles,
...
}:
let
}: let
btrfsPartPath = "/dev/disk/by-label/NIXOS";
btrfsOptions = ["compress-force=zstd" "noatime"];
btrfsDiff =
@ -76,7 +75,7 @@ in {
btrfs subvolume snapshot /mnt/root-blank /mnt/root
umount /mnt
'';
kernel.sysctl = { "fs.inotify.max_user_watches" = 524288; };
kernel.sysctl = {"fs.inotify.max_user_watches" = 524288;};
};
security.pam.loginLimits = [
{
@ -132,10 +131,9 @@ in {
mitigations.disable = true;
allowSimultaneousMultithreading = false;
# Deleting root subvolume makes sudo show lecture every boot
sudo.extraConfig =
''
Defaults lecture = never
'';
sudo.extraConfig = ''
Defaults lecture = never
'';
rtkit.enable = true;
};
sound.enable = false;
@ -152,8 +150,7 @@ in {
driSupport32Bit = true;
enable = true;
extraPackages = with pkgs; [amdvlk libvdpau-va-gl vaapiVdpau libva vulkan-loader pipewire];
extraPackages32 =
with pkgs.pkgsi686Linux;
extraPackages32 = with pkgs.pkgsi686Linux;
[libvdpau-va-gl vaapiVdpau libva vulkan-loader pipewire] ++ [pkgs.driversi686Linux.amdvlk];
};
pulseaudio = {
@ -186,13 +183,19 @@ in {
};
networking.interfaces.enp6s0.useDHCP = true;
services = {
code-server = {
enable = false;
auth = "none";
user = "patriot";
group = "users";
};
ipfs = {
enable = false;
enableGC = true;
autoMount = true;
};
flatpak.enable = false;
xserver = { videoDrivers = ["amdgpu"]; };
xserver = {videoDrivers = ["amdgpu"];};
postgresql = {
enable = false;
enableTCPIP = true;
@ -203,7 +206,7 @@ in {
local all all trust
host all all 0.0.0.0/0 md5
'';
settings = { listen_addresses = "*"; };
settings = {listen_addresses = "*";};
initialScript =
pkgs.writeText
"backend-initScript"
@ -215,7 +218,7 @@ in {
};
};
virtualisation = {
podman.enable = false;
podman.enable = true;
libvirtd.enable = false;
};
system.stateVersion = "20.09";

View File

@ -9,7 +9,7 @@ let
sha256 = "0zd3x46fswh5n6faq4x2kkpy6p3c6j593xbdlbsl40ppkclwc80x";
}
)
{ src = ../../.; }
{src = ../../.;}
);
in
flake

View File

@ -1,5 +1,4 @@
{ ... }:
let
{...}: let
inherit (default.inputs.nixos) lib;
host = configs.${hostname} or configs.NixOS;
configs = default.nixosConfigurations;

View File

@ -1,8 +1,8 @@
{ lib }:
{lib}:
lib.makeExtensible
(
self: {
pkgBinNoDep = pkgs: name: "${pkgs.${name}}/bin/${name}";
html = import ./html.nix { format = true; };
html = import ./html.nix {format = true;};
}
)

View File

@ -1,5 +1,4 @@
{ format ? false }:
let
{format ? false}: let
inherit (builtins) isAttrs isList map;
fmt =
if format
@ -10,24 +9,23 @@ let
evalAttrs = attrs: concatStrings (mapAttrsToList (name: value: " ${name}=\"${value}\"") attrs);
genAttrs = f: names:
builtins.listToAttrs (map
(n: {
name = n;
value = (f n);
})
names);
(n: {
name = n;
value = f n;
})
names);
evalChildren = children:
if isList children
then concatStrings children
else children;
tag =
name: maybeAttrs:
if isAttrs maybeAttrs
then (children: "<${name}${evalAttrs maybeAttrs}>${fmt}${evalChildren children}${fmt}</${name}>")
else tag name {} maybeAttrs;
tags = (genAttrs tag ["html" "head" "body" "div" "p" "a"]);
tag = name: maybeAttrs:
if isAttrs maybeAttrs
then (children: "<${name}${evalAttrs maybeAttrs}>${fmt}${evalChildren children}${fmt}</${name}>")
else tag name {} maybeAttrs;
tags = genAttrs tag ["html" "head" "body" "div" "p" "a"];
in
tags
// {
inherit tag;
link = url: tags.a { href = url; };
link = url: tags.a {href = url;};
}

View File

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
console.keyMap = "trq";
i18n = {
defaultLocale = "en_US.UTF-8";

View File

@ -1,11 +1,7 @@
{
config,
...
}:
{
{config, ...}: {
home-manager.sharedModules = [
{
home.sessionVariables = { inherit (config.environment.sessionVariables) NIX_PATH; };
home.sessionVariables = {inherit (config.environment.sessionVariables) NIX_PATH;};
xdg.configFile."nix/registry.json".text = config.environment.etc."nix/registry.json".text;
}
];

View File

@ -2,7 +2,6 @@
channel,
inputs,
...
}:
{
}: {
nix.nixPath = ["nixpkgs=${channel.input}" "nixos-config=${../lib/compat/nixos}" "home-manager=${inputs.home}"];
}

View File

@ -6,9 +6,8 @@
with lib; let
inherit (builtins) readFile fetchurl;
cfg = config.security.mitigations;
cmdline =
''
ibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off'';
cmdline = ''
ibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off'';
in {
options = {
security.mitigations.disable =
@ -16,13 +15,12 @@ in {
{
type = types.bool;
default = false;
description =
''
Whether to disable spectre and meltdown mitigations in the kernel. Do
not use this in mission critical deployments, or on any machine you do
not have physical access to.
'';
description = ''
Whether to disable spectre and meltdown mitigations in the kernel. Do
not use this in mission critical deployments, or on any machine you do
not have physical access to.
'';
};
};
config = mkIf cfg.disable { boot.kernelParams = splitString " " cmdline; };
config = mkIf cfg.disable {boot.kernelParams = splitString " " cmdline;};
}

View File

@ -1,19 +1,18 @@
_: prev: let
cliArgs =
let
flags = [
"--flag-switches-begin"
"--enable-features=WebUIDarkMode,UseOzonePlatform,WebRTCPipeWireCapturer,IgnoreGPUBlocklist,Vulkan"
"--flag-switches-end"
"--ozone-platform=wayland"
"--enable-webrtc-pipewire-capturer"
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
"--disable-gpu-driver-bug-workarounds"
"--force-dark-mode"
"--process-per-site"
];
in
prev.lib.concatStringsSep " " flags;
in { chromium = prev.chromium.override { commandLineArgs = cliArgs; }; }
cliArgs = let
flags = [
"--flag-switches-begin"
"--enable-features=WebUIDarkMode,UseOzonePlatform,WebRTCPipeWireCapturer,IgnoreGPUBlocklist,Vulkan"
"--flag-switches-end"
"--ozone-platform=wayland"
"--enable-webrtc-pipewire-capturer"
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
"--disable-gpu-driver-bug-workarounds"
"--force-dark-mode"
"--process-per-site"
];
in
prev.lib.concatStringsSep " " flags;
in {chromium = prev.chromium.override {commandLineArgs = cliArgs;};}

View File

@ -2,211 +2,206 @@ final: prev: rec {
discord-canary-system =
prev.callPackage
mkDiscord
(
rec {
pname = "discord-canary";
version = "0.0.131";
binaryName = "DiscordCanary";
desktopName = "Discord Canary";
src =
prev.fetchurl
{
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
sha256 = "sha256-ZYPdE02Jq79LmvXu7KIJFugJX++Nnj0Og/mBuaP/+SA=";
};
isWayland = true;
enableVulkan = false;
extraOptions = [
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
"--disable-gpu-driver-bug-workarounds"
];
}
);
mkDiscord =
{
pname,
version,
src,
binaryName,
desktopName,
isWayland ? false,
enableVulkan ? false,
extraOptions ? [],
autoPatchelfHook,
makeDesktopItem,
lib,
stdenv,
wrapGAppsHook,
alsaLib,
at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
dbus,
electron,
expat,
fontconfig,
freetype,
gdk-pixbuf,
glib,
gtk3,
libcxx,
libdrm,
libnotify,
libpulseaudio,
libuuid,
libX11,
libXScrnSaver,
libXcomposite,
libXcursor,
libXdamage,
libXext,
libXfixes,
libXi,
libXrandr,
libXrender,
libXtst,
libxcb,
mesa,
nspr,
nss,
pango,
systemd,
libappindicator-gtk3,
libdbusmenu,
nodePackages,
vulkan-loader,
vulkan-extension-layer,
libGL,
pipewire,
}:
stdenv.mkDerivation
rec {
inherit pname version src;
nativeBuildInputs = [
nodePackages.asar
rec {
pname = "discord-canary";
version = "0.0.131";
binaryName = "DiscordCanary";
desktopName = "Discord Canary";
src =
prev.fetchurl
{
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
sha256 = "sha256-ZYPdE02Jq79LmvXu7KIJFugJX++Nnj0Og/mBuaP/+SA=";
};
isWayland = true;
enableVulkan = false;
extraOptions = [
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
"--disable-gpu-driver-bug-workarounds"
];
};
mkDiscord = {
pname,
version,
src,
binaryName,
desktopName,
isWayland ? false,
enableVulkan ? false,
extraOptions ? [],
autoPatchelfHook,
makeDesktopItem,
lib,
stdenv,
wrapGAppsHook,
alsaLib,
at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
dbus,
electron,
expat,
fontconfig,
freetype,
gdk-pixbuf,
glib,
gtk3,
libcxx,
libdrm,
libnotify,
libpulseaudio,
libuuid,
libX11,
libXScrnSaver,
libXcomposite,
libXcursor,
libXdamage,
libXext,
libXfixes,
libXi,
libXrandr,
libXrender,
libXtst,
libxcb,
mesa,
nspr,
nss,
pango,
systemd,
libappindicator-gtk3,
libdbusmenu,
nodePackages,
vulkan-loader,
vulkan-extension-layer,
libGL,
pipewire,
}:
stdenv.mkDerivation
rec {
inherit pname version src;
nativeBuildInputs = [
nodePackages.asar
alsaLib
autoPatchelfHook
cups
libdrm
libuuid
libXdamage
libX11
libXScrnSaver
libXtst
libxcb
mesa.drivers
nss
wrapGAppsHook
];
dontWrapGApps = true;
libPath =
lib.makeLibraryPath
[
libcxx
systemd
libpulseaudio
stdenv.cc.cc
alsaLib
autoPatchelfHook
atk
at-spi2-atk
at-spi2-core
cairo
cups
libdrm
libuuid
libXdamage
dbus
expat
fontconfig
freetype
gdk-pixbuf
glib
gtk3
libnotify
libX11
libXScrnSaver
libXcomposite
libuuid
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libXtst
libxcb
mesa.drivers
nspr
nss
wrapGAppsHook
libxcb
pango
systemd
libXScrnSaver
libappindicator-gtk3
libdbusmenu
vulkan-loader
vulkan-extension-layer
libGL
pipewire
];
dontWrapGApps = true;
libPath =
lib.makeLibraryPath
flags =
(
lib.optionals
isWayland
[
libcxx
systemd
libpulseaudio
stdenv.cc.cc
alsaLib
atk
at-spi2-atk
at-spi2-core
cairo
cups
dbus
expat
fontconfig
freetype
gdk-pixbuf
glib
gtk3
libnotify
libX11
libXcomposite
libuuid
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libXtst
nspr
nss
libxcb
pango
systemd
libXScrnSaver
libappindicator-gtk3
libdbusmenu
vulkan-loader
vulkan-extension-layer
libGL
pipewire
];
flags =
(
lib.optionals
isWayland
[
"--flag-switches-begin"
"--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer${
lib.optionalString enableVulkan ",Vulkan"
}"
"--flag-switches-end"
"--ozone-platform=wayland"
"--enable-webrtc-pipewire-capturer"
]
)
++ extraOptions;
installPhase =
''
mkdir -p $out/{bin,usr/lib/${pname},share/pixmaps}
ln -s discord.png $out/share/pixmaps/${pname}.png
ln -s "${desktopItem}/share/applications" $out/share/
"--flag-switches-begin"
"--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer${
lib.optionalString enableVulkan ",Vulkan"
}"
"--flag-switches-end"
"--ozone-platform=wayland"
"--enable-webrtc-pipewire-capturer"
]
)
++ extraOptions;
installPhase = ''
mkdir -p $out/{bin,usr/lib/${pname},share/pixmaps}
ln -s discord.png $out/share/pixmaps/${pname}.png
ln -s "${desktopItem}/share/applications" $out/share/
# HACKS FOR SYSTEM ELECTRON
asar e resources/app.asar resources/app
rm resources/app.asar
sed -i "s|process.resourcesPath|'$out/usr/lib/${pname}'|" resources/app/app_bootstrap/buildInfo.js
sed -i "s|exeDir,|'$out/share/pixmaps',|" resources/app/app_bootstrap/autoStart/linux.js
asar p resources/app resources/app.asar --unpack-dir '**'
rm -rf resources/app
# HACKS FOR SYSTEM ELECTRON
asar e resources/app.asar resources/app
rm resources/app.asar
sed -i "s|process.resourcesPath|'$out/usr/lib/${pname}'|" resources/app/app_bootstrap/buildInfo.js
sed -i "s|exeDir,|'$out/share/pixmaps',|" resources/app/app_bootstrap/autoStart/linux.js
asar p resources/app resources/app.asar --unpack-dir '**'
rm -rf resources/app
# Copy Relevanat data
cp -r resources/* $out/usr/lib/${pname}/
# Copy Relevanat data
cp -r resources/* $out/usr/lib/${pname}/
# Create starter script for discord
echo "#!${stdenv.shell}" > $out/bin/${pname}
echo "exec ${electron}/bin/electron ${lib.concatStringsSep " " flags} $out/usr/lib/${pname}/app.asar \$@" >> $out/bin/${pname}
chmod 755 $out/bin/${pname}
# Create starter script for discord
echo "#!${stdenv.shell}" > $out/bin/${pname}
echo "exec ${electron}/bin/electron ${lib.concatStringsSep " " flags} $out/usr/lib/${pname}/app.asar \$@" >> $out/bin/${pname}
chmod 755 $out/bin/${pname}
wrapProgram $out/bin/${pname} \
"''${gappsWrapperArgs[@]}" \
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
--prefix LD_LIBRARY_PATH : ${libPath}
'';
desktopItem =
makeDesktopItem
{
name = pname;
exec = pname;
icon = pname;
inherit desktopName;
genericName = meta.description;
categories = "Network;InstantMessaging;";
mimeType = "x-scheme-handler/discord";
};
meta =
with lib; {
description = "All-in-one cross-platform voice and text chat for gamers";
homepage = "https://discordapp.com/";
downloadPage = "https://discordapp.com/download";
platforms = ["x86_64-linux"];
};
wrapProgram $out/bin/${pname} \
"''${gappsWrapperArgs[@]}" \
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
--prefix LD_LIBRARY_PATH : ${libPath}
'';
desktopItem =
makeDesktopItem
{
name = pname;
exec = pname;
icon = pname;
inherit desktopName;
genericName = meta.description;
categories = "Network;InstantMessaging;";
mimeType = "x-scheme-handler/discord";
};
meta = with lib; {
description = "All-in-one cross-platform voice and text chat for gamers";
homepage = "https://discordapp.com/";
downloadPage = "https://discordapp.com/download";
platforms = ["x86_64-linux"];
};
};
}

View File

@ -12,21 +12,20 @@ final: prev: {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
sha256 = "0bijwfsd9s4awqkgxd9c2cxh7y5r06vix98qjp0dkv63r6jig8ch";
};
installPhase =
''
mkdir -p $out/{bin,opt/${binaryName},share/pixmaps}
mv * $out/opt/${binaryName}
chmod +x $out/opt/${binaryName}/${binaryName}
patchelf --set-interpreter ${prev.stdenv.cc.bintools.dynamicLinker} \
$out/opt/${binaryName}/${binaryName}
wrapProgram $out/opt/${binaryName}/${binaryName} \
"''${gappsWrapperArgs[@]}" \
--prefix XDG_DATA_DIRS : "${prev.gtk3}/share/gsettings-schemas/${prev.gtk3.name}/" \
--prefix LD_LIBRARY_PATH : "${old.libPath}:${prev.electron_9}/lib/electron:${prev.libdrm}/lib:${prev.libGL_driver.out}/lib"
ln -s $out/opt/${binaryName}/${binaryName} $out/bin/
ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${old.pname}.png
ln -s "${old.desktopItem}/share/applications" $out/share/
'';
installPhase = ''
mkdir -p $out/{bin,opt/${binaryName},share/pixmaps}
mv * $out/opt/${binaryName}
chmod +x $out/opt/${binaryName}/${binaryName}
patchelf --set-interpreter ${prev.stdenv.cc.bintools.dynamicLinker} \
$out/opt/${binaryName}/${binaryName}
wrapProgram $out/opt/${binaryName}/${binaryName} \
"''${gappsWrapperArgs[@]}" \
--prefix XDG_DATA_DIRS : "${prev.gtk3}/share/gsettings-schemas/${prev.gtk3.name}/" \
--prefix LD_LIBRARY_PATH : "${old.libPath}:${prev.electron_9}/lib/electron:${prev.libdrm}/lib:${prev.libGL_driver.out}/lib"
ln -s $out/opt/${binaryName}/${binaryName} $out/bin/
ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${old.pname}.png
ln -s "${old.desktopItem}/share/applications" $out/share/
'';
}
);
}

View File

@ -1 +1 @@
final: prev: { manix = prev.manix.overrideAttrs (o: rec { inherit (prev.sources.manix) pname version src; }); }
final: prev: {manix = prev.manix.overrideAttrs (o: rec {inherit (prev.sources.manix) pname version src;});}

View File

@ -12,15 +12,13 @@ final: prev: {
};
dontWrapQtApps = true;
buildInputs = [prev.libsForQt5.qt5.qtbase];
buildPhase =
''
cd src/styleplugin
qmake && make
'';
installPhase =
''
mkdir -p $out/$qtPluginPrefix/styles
mv libphantomstyleplugin.so $out/$qtPluginPrefix/styles
'';
buildPhase = ''
cd src/styleplugin
qmake && make
'';
installPhase = ''
mkdir -p $out/$qtPluginPrefix/styles
mv libphantomstyleplugin.so $out/$qtPluginPrefix/styles
'';
};
}

View File

@ -2,6 +2,6 @@ final: prev: {
# Since: https://github.com/NixOS/nixpkgs/pull/126137
nix-direnv =
if builtins.hasAttr "enableFlakes" prev.nix-direnv.override.__functionArgs
then prev.nix-direnv.override { enableFlakes = true; }
then prev.nix-direnv.override {enableFlakes = true;}
else prev.nix-direnv;
}

View File

@ -1,52 +1,49 @@
_: prev: let
pkgs = prev;
lib = pkgs.lib;
vscodeWayland =
let
flags = [
"--flag-switches-begin"
"--enable-features=UseOzonePlatform,IgnoreGPUBlocklist"
"--flag-switches-end"
"--ozone-platform=wayland"
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
"--disable-gpu-driver-bug-workarounds"
];
in
pkgs.writeScriptBin
"vscode-wayland"
''
#!${pkgs.stdenv.shell}
${pkgs.vscodium}/bin/codium ${lib.concatStringsSep " " flags}
'';
vscodeWayland = let
flags = [
"--flag-switches-begin"
"--enable-features=UseOzonePlatform,IgnoreGPUBlocklist"
"--flag-switches-end"
"--ozone-platform=wayland"
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
"--disable-gpu-driver-bug-workarounds"
];
in
pkgs.writeScriptBin
"vscode-wayland"
''
#!${pkgs.stdenv.shell}
${pkgs.vscodium}/bin/codium ${lib.concatStringsSep " " flags}
'';
in {
vscodeWayland =
let
pname = "vscode";
desktop =
pkgs.makeDesktopItem
{
name = pname;
exec = pname;
icon = "vscode";
desktopName = "VSCode Wayland";
};
in
lib.hiPrio
(
pkgs.stdenv.mkDerivation
{
inherit pname;
version = pkgs.vscode.version;
nativeBuildInputs = [pkgs.makeWrapper];
phases = ["installPhase"];
installPhase =
''
mkdir -p $out/bin
install -m755 ${vscodeWayland}/bin/${pname}-wayland $out/bin/${pname}
cp -r ${desktop}/share $out/share
'';
}
);
vscodeWayland = let
pname = "vscode";
desktop =
pkgs.makeDesktopItem
{
name = pname;
exec = pname;
icon = "vscode";
desktopName = "VSCode Wayland";
};
in
lib.hiPrio
(
pkgs.stdenv.mkDerivation
{
inherit pname;
version = pkgs.vscode.version;
nativeBuildInputs = [pkgs.makeWrapper];
phases = ["installPhase"];
installPhase = ''
mkdir -p $out/bin
install -m755 ${vscodeWayland}/bin/${pname}-wayland $out/bin/${pname}
cp -r ${desktop}/share $out/share
'';
}
);
}

View File

@ -2,8 +2,7 @@
{
fetchgit,
fetchurl,
}:
{
}: {
manix = {
pname = "manix";
version = "d08e7ca185445b929f097f8bfb1243a8ef3e10e4";

View File

@ -2,8 +2,7 @@
pkgs,
lib,
...
}:
let
}: let
folder = ./.;
toImport = name: value: folder + ("/" + name);
filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key && key != "default.nix";

View File

@ -5,174 +5,167 @@
pkgs,
lib,
...
}:
let
}: let
inherit (lib) fileContents mkIf;
pkgBin = lib.our.pkgBinNoDep pkgs;
coreBin = v: "${pkgs.coreutils}/bin/${v}";
nixBin = "${config.nix.package}/bin/nix";
in {
imports = [../cachix ../../locale];
imports = [../cachix ../../locale ../../secrets/secrets.nix];
boot = {
tmpOnTmpfs = true;
loader.systemd-boot.configurationLimit = 10;
};
console.font = "7x14";
environment = {
systemPackages =
with pkgs; [
binutils
coreutils
curl
direnv
dnsutils
dosfstools
fd
git
bottom
gptfdisk
iputils
jq
manix
moreutils
nix-index
nmap
ripgrep
skim
tealdeer
usbutils
utillinux
whois
bat
fzf
exa
git
lm_sensors
mkpasswd
ntfs3g
zoxide
bottom
amber
unzip
unrar
grit
hydra-check
nix-index
du-dust
mosh
(
pkgs.runCommand
"0x0.sh"
{}
''
mkdir -p $out/bin
cp ${
pkgs.fetchurl
{
url = "https://raw.githubusercontent.com/Calinou/0x0/master/bin/0x0";
sha256 = "sha256-Fad+AKBuA49qtRQfnroqjaNWeuRaCekXZG9sS9JVeaM=";
}
} $out/bin/0x0
chmod +x $out/bin/0x0
''
)
];
shellAliases =
let
ifSudo = string: mkIf config.security.sudo.enable string;
in {
gtw = "${pkgBin "grit"} tree wnv";
gtwa = "${pkgBin "grit"} add -p wnv";
gt = pkgBin "grit";
g = pkgBin "git";
git-optimize = "${pkgBin "git"} gc --aggressive --prune=now";
cat = "${pkgBin "bat"} -pp --theme=base16";
c = "cat";
du = "${pkgs.du-dust}/bin/dust";
df = "${coreBin "df"} -h";
free = "${pkgs.procps}/bin/free -h";
ls = pkgBin "exa";
l = "${pkgBin "exa"} -lhg --git";
la = "${pkgBin "exa"} -lhg --git -a";
t = "${pkgBin "exa"} -lhg --git -T";
ta = "${pkgBin "exa"} -lhg --git -a -T";
n = nixBin;
nf = "${nixBin} flake";
nfc = "${nixBin} flake check";
nfu = "${nixBin} flake update";
nfui = "${nixBin} flake lock --update-input";
nfs = "${nixBin} flake show";
np = "${nixBin} profile";
nb = "${nixBin} build";
npl = "${nixBin} profile info";
npi = "${nixBin} profile install";
npr = "${nixBin} profile remove";
nsh = "${nixBin} shell";
nsr = "${nixBin} search";
nsrp = "${nixBin} search nixpkgs";
ndev = "${nixBin} develop";
nrun = "${nixBin} run";
nrefs = "nix-store -qR";
noscd = "cd /etc/nixos";
nosrs = ifSudo "sudo nixos-rebuild --fast switch";
nosrb = ifSudo "sudo nixos-rebuild --fast boot";
nosrt = ifSudo "sudo nixos-rebuild --fast test";
ngc = ifSudo "sudo nix-collect-garbage";
ngcdo = ifSudo "sudo nix-collect-garbage --delete-old";
top = "${pkgs.bottom}/bin/btm";
myip = "${pkgs.dnsutils}/bin/dig +short myip.opendns.com @208.67.222.222 2>&1";
mn =
let
manix_preview = "manix '{}' | sed 's/type: /> type: /g' | bat -l Markdown --color=always --plain";
in ''manix "" | rg '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | sk --preview="${manix_preview}" | xargs manix'';
# fix nixos-option
nixos-option = "nixos-option -I nixpkgs=${self}/lib/compat";
# sudo
s = ifSudo "sudo -E";
si = ifSudo "sudo -i";
se = ifSudo "sudoedit";
# systemd
ctl = "systemctl";
stl = ifSudo "s systemctl";
utl = "systemctl --user";
ut = "systemctl --user start";
un = "systemctl --user stop";
up = ifSudo "s systemctl start";
dn = ifSudo "s systemctl stop";
jtl = "journalctl";
};
};
system.activationScripts.diff =
''
${pkgs.nixUnstable}/bin/nix store \
--experimental-features 'nix-command' \
diff-closures /run/current-system "$systemConfig"
'';
nix =
let
registry =
builtins.removeAttrs
(builtins.mapAttrs (_: v: { flake = v; }) (lib.filterAttrs (_: v: v ? outputs) inputs))
["bud"];
in {
package = pkgs.nixUnstable;
gc.automatic = true;
optimise.automatic = true;
extraOptions =
systemPackages = with pkgs; [
binutils
coreutils
curl
direnv
dnsutils
dosfstools
fd
git
bottom
gptfdisk
iputils
jq
manix
moreutils
nix-index
nmap
ripgrep
skim
tealdeer
usbutils
utillinux
whois
bat
fzf
exa
git
lm_sensors
mkpasswd
ntfs3g
zoxide
bottom
amber
unzip
unrar
grit
hydra-check
nix-index
du-dust
mosh
(
pkgs.runCommand
"0x0.sh"
{}
''
min-free = 536870912
keep-outputs = true
keep-derivations = true
fallback = true
'';
inherit registry;
settings = {
sandbox = true;
allowed-users = ["@wheel"];
trusted-users = ["root" "@wheel"];
auto-optimise-store = true;
};
mkdir -p $out/bin
cp ${
pkgs.fetchurl
{
url = "https://raw.githubusercontent.com/Calinou/0x0/master/bin/0x0";
sha256 = "sha256-Fad+AKBuA49qtRQfnroqjaNWeuRaCekXZG9sS9JVeaM=";
}
} $out/bin/0x0
chmod +x $out/bin/0x0
''
)
];
shellAliases = let
ifSudo = string: mkIf config.security.sudo.enable string;
in {
gtw = "${pkgBin "grit"} tree wnv";
gtwa = "${pkgBin "grit"} add -p wnv";
gt = pkgBin "grit";
g = pkgBin "git";
git-optimize = "${pkgBin "git"} gc --aggressive --prune=now";
cat = "${pkgBin "bat"} -pp --theme=base16";
c = "cat";
du = "${pkgs.du-dust}/bin/dust";
df = "${coreBin "df"} -h";
free = "${pkgs.procps}/bin/free -h";
ls = pkgBin "exa";
l = "${pkgBin "exa"} -lhg --git";
la = "${pkgBin "exa"} -lhg --git -a";
t = "${pkgBin "exa"} -lhg --git -T";
ta = "${pkgBin "exa"} -lhg --git -a -T";
n = nixBin;
nf = "${nixBin} flake";
nfc = "${nixBin} flake check";
nfu = "${nixBin} flake update";
nfui = "${nixBin} flake lock --update-input";
nfs = "${nixBin} flake show";
np = "${nixBin} profile";
nb = "${nixBin} build";
npl = "${nixBin} profile info";
npi = "${nixBin} profile install";
npr = "${nixBin} profile remove";
nsh = "${nixBin} shell";
nsr = "${nixBin} search";
nsrp = "${nixBin} search nixpkgs";
ndev = "${nixBin} develop";
nrun = "${nixBin} run";
nrefs = "nix-store -qR";
noscd = "cd /etc/nixos";
nosrs = ifSudo "sudo nixos-rebuild --fast switch";
nosrb = ifSudo "sudo nixos-rebuild --fast boot";
nosrt = ifSudo "sudo nixos-rebuild --fast test";
ngc = ifSudo "sudo nix-collect-garbage";
ngcdo = ifSudo "sudo nix-collect-garbage --delete-old";
top = "${pkgs.bottom}/bin/btm";
myip = "${pkgs.dnsutils}/bin/dig +short myip.opendns.com @208.67.222.222 2>&1";
mn = let
manix_preview = "manix '{}' | sed 's/type: /> type: /g' | bat -l Markdown --color=always --plain";
in ''manix "" | rg '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | sk --preview="${manix_preview}" | xargs manix'';
# fix nixos-option
nixos-option = "nixos-option -I nixpkgs=${self}/lib/compat";
# sudo
s = ifSudo "sudo -E";
si = ifSudo "sudo -i";
se = ifSudo "sudoedit";
# systemd
ctl = "systemctl";
stl = ifSudo "s systemctl";
utl = "systemctl --user";
ut = "systemctl --user start";
un = "systemctl --user stop";
up = ifSudo "s systemctl start";
dn = ifSudo "s systemctl stop";
jtl = "journalctl";
};
};
system.activationScripts.diff = ''
${pkgs.nixUnstable}/bin/nix store \
--experimental-features 'nix-command' \
diff-closures /run/current-system "$systemConfig"
'';
nix = let
registry =
builtins.removeAttrs
(builtins.mapAttrs (_: v: {flake = v;}) (lib.filterAttrs (_: v: v ? outputs) inputs))
["bud"];
in {
package = pkgs.nixUnstable;
gc.automatic = true;
optimise.automatic = true;
extraOptions = ''
min-free = 536870912
keep-outputs = true
keep-derivations = true
fallback = true
'';
inherit registry;
settings = {
sandbox = true;
allowed-users = ["@wheel"];
trusted-users = ["root" "@wheel"];
auto-optimise-store = true;
};
};
programs.command-not-found.enable = false;
home-manager.useGlobalPkgs = true;
users.mutableUsers = false;

View File

@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
imports = [./editor];
environment.systemPackages = with pkgs; [git tokei];
documentation.dev.enable = true;

View File

@ -1,9 +1,5 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
imports = [./helix.nix];
environment.systemPackages = with pkgs; [alejandra];
environment.shellAliases = { nixf-all = "alejandra **/**.nix"; };
environment.shellAliases = {nixf-all = "alejandra **/**.nix";};
}

View File

@ -1,8 +1,4 @@
{
pkgs,
...
}:
let
{pkgs, ...}: let
pkg = pkgs.helix;
bin = "${pkg}/bin/hx";
in {
@ -11,5 +7,5 @@ in {
EDITOR = bin;
VISUAL = bin;
};
environment.shellAliases = { e = bin; };
environment.shellAliases = {e = bin;};
}

View File

@ -1,8 +1,4 @@
{
pkgs,
...
}:
let
{pkgs, ...}: let
pkg = pkgs.kakoune-unwrapped;
in {
environment.systemPackages = [pkg];
@ -10,5 +6,5 @@ in {
EDITOR = "${pkg}/bin/kak";
VISUAL = "${pkg}/bin/kak";
};
environment.shellAliases = { k = "${pkg}/bin/kak"; };
environment.shellAliases = {k = "${pkg}/bin/kak";};
}

View File

@ -1,5 +1 @@
{
pkgs,
...
}:
{ environment.systemPackages = with pkgs; [godot-bin godot-headless-bin godot-server-bin]; }
{pkgs, ...}: {environment.systemPackages = with pkgs; [godot-bin godot-headless-bin godot-server-bin];}

View File

@ -2,9 +2,8 @@
imports = [./dns];
networking.dhcpcd.enable = false;
networking.useDHCP = false;
networking.dhcpcd.extraConfig =
''
noarp
nodelay
'';
networking.dhcpcd.extraConfig = ''
noarp
nodelay
'';
}

View File

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
services.nextdns = {
enable = true;
arguments = ["-config" "75e43d"];

View File

@ -1,18 +1,17 @@
{
services.stubby = {
roundRobinUpstreams = false;
upstreamServers =
let
nextDnsId = "75e43d";
in ''
- address_data: 45.90.28.0
tls_auth_name: "${nextDnsId}.dns1.nextdns.io"
- address_data: 2a07:a8c0::0
tls_auth_name: "${nextDnsId}.dns1.nextdns.io"
- address_data: 45.90.30.0
tls_auth_name: "${nextDnsId}.dns2.nextdns.io"
- address_data: 2a07:a8c1::0
tls_auth_name: "${nextDnsId}.dns2.nextdns.io"
'';
upstreamServers = let
nextDnsId = "75e43d";
in ''
- address_data: 45.90.28.0
tls_auth_name: "${nextDnsId}.dns1.nextdns.io"
- address_data: 2a07:a8c0::0
tls_auth_name: "${nextDnsId}.dns1.nextdns.io"
- address_data: 45.90.30.0
tls_auth_name: "${nextDnsId}.dns2.nextdns.io"
- address_data: 2a07:a8c1::0
tls_auth_name: "${nextDnsId}.dns2.nextdns.io"
'';
};
}

Binary file not shown.

View File

@ -2,11 +2,9 @@
self,
inputs,
...
}:
{
modules =
with inputs; [
#bud.devshellModules.bud
];
}: {
modules = with inputs; [
#bud.devshellModules.bud
];
exportedModules = [./devos.nix];
}

View File

@ -2,17 +2,16 @@
pkgs,
extraModulesPath,
...
}:
let
}: let
hooks = import ./hooks;
pkgWithCategory = category: package: { inherit package category; };
pkgWithCategory = category: package: {inherit package category;};
linter = pkgWithCategory "linter";
docs = pkgWithCategory "docs";
devos = pkgWithCategory "devos";
in {
_file = toString ./.;
imports = ["${extraModulesPath}/git/hooks.nix"];
git = { inherit hooks; };
git = {inherit hooks;};
# tempfix: remove when merged https://github.com/numtide/devshell/pull/123
devshell.startup.load_profiles =
pkgs.lib.mkForce
@ -33,8 +32,7 @@ in {
''
);
packages = with pkgs; [git-crypt];
commands =
with pkgs;
commands = with pkgs;
[
(devos nixUnstable)
#(devos agenix)

View File

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
users.users.nixos = {
uid = 1000;
password = "nixos";

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
{
programs.git = {
enable = true;
extraConfig = { pull.rebase = true; };
extraConfig = {pull.rebase = true;};
lfs.enable = true;
aliases = {
a = "add -p";
@ -31,8 +31,7 @@
rs1ft = "soft HEAD~1";
rh1rd = "hard HEAD~1";
# logging
l =
"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
l = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
plog = "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'";
tlog = "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative";
rank = "shortlog -sn --no-merges";

View File

@ -3,207 +3,204 @@
config,
pkgs,
...
}:
{
}: {
home.packages = with pkgs; [hikari xwayland];
xdg = {
enable = true;
configFile = {
"hikari/hikari.conf".text =
''
ui {
border = 1
gap = 0
step = 120
font = "${fontComb}"
"hikari/hikari.conf".text = ''
ui {
border = 1
gap = 0
step = 120
font = "${fontComb}"
colorscheme {
background = 0x282C34
foreground = 0x000000
selected = 0xF5E094
grouped = 0xFDAF53
first = 0xB8E673
conflict = 0xED6B32
insert = 0xE3C3FA
active = 0xFFFFFF
inactive = 0x465457
}
colorscheme {
background = 0x282C34
foreground = 0x000000
selected = 0xF5E094
grouped = 0xFDAF53
first = 0xB8E673
conflict = 0xED6B32
insert = 0xE3C3FA
active = 0xFFFFFF
inactive = 0x465457
}
}
outputs {
outputs {
"*" {
background = "${config.home.homeDirectory}/wallpaper.png"
}
}
inputs {
keyboards {
"*" {
background = "${config.home.homeDirectory}/wallpaper.png"
}
}
inputs {
keyboards {
"*" {
xkb = {
layout = "tr"
}
}
}
pointers {
"*" {
accel-profile = "flat"
xkb = {
layout = "tr"
}
}
}
layouts {
# main stack
s = {
scale = {
min = 0.5
max = 0.75
}
left = single
right = stack
}
# main queue
q = {
scale = 0.75
top = single
bottom = queue
}
f = full
h = stack
v = queue
g = grid
}
actions {
terminal = "${pkgs.alacritty}/bin/alacritty"
run = "${pkgs.wofi}/bin/wofi --show drun"
}
bindings {
keyboard {
"L+0" = workspace-switch-to-sheet-0
"L+1" = workspace-switch-to-sheet-1
"L+2" = workspace-switch-to-sheet-2
"L+3" = workspace-switch-to-sheet-3
"L+4" = workspace-switch-to-sheet-4
"L+5" = workspace-switch-to-sheet-5
"L+6" = workspace-switch-to-sheet-6
"L+7" = workspace-switch-to-sheet-7
"L+8" = workspace-switch-to-sheet-8
"L+9" = workspace-switch-to-sheet-9
"L+numbersign" = workspace-switch-to-sheet-alternate
"L+Period" = workspace-switch-to-sheet-current
"L+j" = workspace-switch-to-sheet-next
"L+k" = workspace-switch-to-sheet-prev
"L+Comma" = workspace-switch-to-sheet-next-inhabited
"LS+Comma" = workspace-switch-to-sheet-prev-inhabited
"LSC+g" = workspace-show-group
"LSC+i" = workspace-show-invisible
"LSC+Period" = workspace-show-all
"LC+n" = workspace-cycle-next
"LC+p" = workspace-cycle-prev
"LC+i" = sheet-show-invisible
"LC+Period" = sheet-show-all
"LC+g" = sheet-show-group
"LA+r" = layout-reset
"LA+Return" = layout-restack-append
"LAS+Return" = layout-restack-prepend
"L+Home" = layout-cycle-view-first
"L+End" = layout-cycle-view-last
"L+n" = layout-cycle-view-next
"L+p" = layout-cycle-view-prev
"L+x" = layout-exchange-view-next
"LS+x" = layout-exchange-view-prev
"LA+x" = layout-exchange-view-main
"LS+0" = view-pin-to-sheet-0
"LS+1" = view-pin-to-sheet-1
"LS+2" = view-pin-to-sheet-2
"LS+3" = view-pin-to-sheet-3
"LS+4" = view-pin-to-sheet-4
"LS+5" = view-pin-to-sheet-5
"LS+6" = view-pin-to-sheet-6
"LS+7" = view-pin-to-sheet-7
"LS+8" = view-pin-to-sheet-8
"LS+9" = view-pin-to-sheet-9
"LS+numbersign" = view-pin-to-sheet-alternate
"LS+Period" = view-pin-to-sheet-current
"LS+j" = view-pin-to-sheet-next
"LS+k" = view-pin-to-sheet-prev
"L+q" = view-quit
"L+Tab" = view-cycle-next
"LS+Tab" = view-cycle-prev
"L+Up" = view-move-up
"L+Down" = view-move-down
"L+Left" = view-move-left
"L+Right" = view-move-right
"LA+Up" = view-decrease-size-up
"LAS+Up" = view-increase-size-up
"LA+Down" = view-increase-size-down
"LAS+Down" = view-decrease-size-down
"LA+Left" = view-decrease-size-left
"LAS+Left" = view-increase-size-left
"LA+Right" = view-increase-size-right
"LAS+Right" = view-decrease-size-right
"LS+Up" = view-snap-up
"LS+Down" = view-snap-down
"LS+Left" = view-snap-left
"LS+Right" = view-snap-right
"L+r" = view-reset-geometry
"L+minus" = view-toggle-maximize-vertical
"L+less" = view-toggle-maximize-horizontal
"L+f" = view-toggle-maximize-full
"L5+plus" = view-toggle-floating
"L+i" = view-toggle-invisible
"L5+p" = view-toggle-public
"L+l" = mode-enter-layout
"L+s" = mode-enter-sheet-assign
"L+g" = mode-enter-group-assign
"L+m" = mode-enter-mark-assign
"L+acute" = mode-enter-mark-select
"LS+acute" = mode-enter-mark-switch-select
"LCA+g" = mode-enter-input-grab
"LS+Backspace" = lock
"LCA+q" = quit
"LCA+r" = reload
"L+Return" = action-terminal
"L+d" = action-run
"A+F1" = vt-switch-to-1
"A+F2" = vt-switch-to-2
"A+F3" = vt-switch-to-3
"A+F4" = vt-switch-to-4
"A+F5" = vt-switch-to-5
"A+F6" = vt-switch-to-6
"A+F7" = vt-switch-to-7
"A+F8" = vt-switch-to-8
"A+F9" = vt-switch-to-9
}
mouse {
"L+left" = mode-enter-move
"L+right" = mode-enter-resize
pointers {
"*" {
accel-profile = "flat"
}
}
'';
"hikari/autostart".source =
"${
pkgs.writeScriptBin
"hikari-autostart"
''
#!${pkgs.stdenv.shell}
${pkgs.waybar}/bin/waybar &
''
}/bin/hikari-autostart";
}
layouts {
# main stack
s = {
scale = {
min = 0.5
max = 0.75
}
left = single
right = stack
}
# main queue
q = {
scale = 0.75
top = single
bottom = queue
}
f = full
h = stack
v = queue
g = grid
}
actions {
terminal = "${pkgs.alacritty}/bin/alacritty"
run = "${pkgs.wofi}/bin/wofi --show drun"
}
bindings {
keyboard {
"L+0" = workspace-switch-to-sheet-0
"L+1" = workspace-switch-to-sheet-1
"L+2" = workspace-switch-to-sheet-2
"L+3" = workspace-switch-to-sheet-3
"L+4" = workspace-switch-to-sheet-4
"L+5" = workspace-switch-to-sheet-5
"L+6" = workspace-switch-to-sheet-6
"L+7" = workspace-switch-to-sheet-7
"L+8" = workspace-switch-to-sheet-8
"L+9" = workspace-switch-to-sheet-9
"L+numbersign" = workspace-switch-to-sheet-alternate
"L+Period" = workspace-switch-to-sheet-current
"L+j" = workspace-switch-to-sheet-next
"L+k" = workspace-switch-to-sheet-prev
"L+Comma" = workspace-switch-to-sheet-next-inhabited
"LS+Comma" = workspace-switch-to-sheet-prev-inhabited
"LSC+g" = workspace-show-group
"LSC+i" = workspace-show-invisible
"LSC+Period" = workspace-show-all
"LC+n" = workspace-cycle-next
"LC+p" = workspace-cycle-prev
"LC+i" = sheet-show-invisible
"LC+Period" = sheet-show-all
"LC+g" = sheet-show-group
"LA+r" = layout-reset
"LA+Return" = layout-restack-append
"LAS+Return" = layout-restack-prepend
"L+Home" = layout-cycle-view-first
"L+End" = layout-cycle-view-last
"L+n" = layout-cycle-view-next
"L+p" = layout-cycle-view-prev
"L+x" = layout-exchange-view-next
"LS+x" = layout-exchange-view-prev
"LA+x" = layout-exchange-view-main
"LS+0" = view-pin-to-sheet-0
"LS+1" = view-pin-to-sheet-1
"LS+2" = view-pin-to-sheet-2
"LS+3" = view-pin-to-sheet-3
"LS+4" = view-pin-to-sheet-4
"LS+5" = view-pin-to-sheet-5
"LS+6" = view-pin-to-sheet-6
"LS+7" = view-pin-to-sheet-7
"LS+8" = view-pin-to-sheet-8
"LS+9" = view-pin-to-sheet-9
"LS+numbersign" = view-pin-to-sheet-alternate
"LS+Period" = view-pin-to-sheet-current
"LS+j" = view-pin-to-sheet-next
"LS+k" = view-pin-to-sheet-prev
"L+q" = view-quit
"L+Tab" = view-cycle-next
"LS+Tab" = view-cycle-prev
"L+Up" = view-move-up
"L+Down" = view-move-down
"L+Left" = view-move-left
"L+Right" = view-move-right
"LA+Up" = view-decrease-size-up
"LAS+Up" = view-increase-size-up
"LA+Down" = view-increase-size-down
"LAS+Down" = view-decrease-size-down
"LA+Left" = view-decrease-size-left
"LAS+Left" = view-increase-size-left
"LA+Right" = view-increase-size-right
"LAS+Right" = view-decrease-size-right
"LS+Up" = view-snap-up
"LS+Down" = view-snap-down
"LS+Left" = view-snap-left
"LS+Right" = view-snap-right
"L+r" = view-reset-geometry
"L+minus" = view-toggle-maximize-vertical
"L+less" = view-toggle-maximize-horizontal
"L+f" = view-toggle-maximize-full
"L5+plus" = view-toggle-floating
"L+i" = view-toggle-invisible
"L5+p" = view-toggle-public
"L+l" = mode-enter-layout
"L+s" = mode-enter-sheet-assign
"L+g" = mode-enter-group-assign
"L+m" = mode-enter-mark-assign
"L+acute" = mode-enter-mark-select
"LS+acute" = mode-enter-mark-switch-select
"LCA+g" = mode-enter-input-grab
"LS+Backspace" = lock
"LCA+q" = quit
"LCA+r" = reload
"L+Return" = action-terminal
"L+d" = action-run
"A+F1" = vt-switch-to-1
"A+F2" = vt-switch-to-2
"A+F3" = vt-switch-to-3
"A+F4" = vt-switch-to-4
"A+F5" = vt-switch-to-5
"A+F6" = vt-switch-to-6
"A+F7" = vt-switch-to-7
"A+F8" = vt-switch-to-8
"A+F9" = vt-switch-to-9
}
mouse {
"L+left" = mode-enter-move
"L+right" = mode-enter-resize
}
}
'';
"hikari/autostart".source = "${
pkgs.writeScriptBin
"hikari-autostart"
''
#!${pkgs.stdenv.shell}
${pkgs.waybar}/bin/waybar &
''
}/bin/hikari-autostart";
};
};
}

View File

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.starship = {
enable = true;
settings = {

View File

@ -1,5 +1 @@
{
pkgs,
...
}:
{ home.packages = [pkgs.wtf]; }
{pkgs, ...}: {home.packages = [pkgs.wtf];}

View File

@ -1,5 +1,3 @@
{ ... }:
{
users.users.root.initialHashedPassword =
"$6$XLWo1sPpgp63Zm$XHBbULH9q1gb/.yalPPU/I7EgTcW80bM.moCjIe/qGyOwE47VcXNVbTHloBZdIWQq0MfIG0IxInAu59.oJyos/";
{...}: {
users.users.root.initialHashedPassword = "$6$XLWo1sPpgp63Zm$XHBbULH9q1gb/.yalPPU/I7EgTcW80bM.moCjIe/qGyOwE47VcXNVbTHloBZdIWQq0MfIG0IxInAu59.oJyos/";
}