init
This commit is contained in:
commit
0df1237eb2
19 changed files with 1921 additions and 0 deletions
137
configuration.nix
Normal file
137
configuration.nix
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.hostName = "twinkpad"; # Define your hostname.
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Select internationalisation properties.
|
||||
# i18n.defaultLocale = "en_US.UTF-8";
|
||||
# console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
# keyMap = "us";
|
||||
# useXkbConfig = true; # use xkb.options in tty.
|
||||
# };
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the GNOME Desktop Environment.
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
programs.niri.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
# services.xserver.xkb.layout = "us";
|
||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound.
|
||||
# services.pulseaudio.enable = true;
|
||||
# OR
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
|
||||
};
|
||||
|
||||
# make pipewire realtime-capable
|
||||
security.rtkit.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.mutableUsers = false;
|
||||
users.users.lucy = {
|
||||
initialHashedPassword = "$6$QX95LTUGi55mFQOZ$j19/LuGvMeWOBCp/oEOLWDU5rcrEfD9/2AQ3sW1OVMROMJEFpg/hTrWKnOgIUfzWtF32wUxNlThXIJm8YWJwZ.";
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||
packages = with pkgs; [
|
||||
tree
|
||||
];
|
||||
};
|
||||
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# List packages installed in system profile.
|
||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
wget
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
programs.mtr.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# Copy the NixOS configuration file and link it from the resulting system
|
||||
# (/run/current-system/configuration.nix). This is useful in case you
|
||||
# accidentally delete configuration.nix.
|
||||
# system.copySystemConfiguration = true;
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
}
|
||||
547
flake.lock
generated
Normal file
547
flake.lock
generated
Normal file
|
|
@ -0,0 +1,547 @@
|
|||
{
|
||||
"nodes": {
|
||||
"c3d2-user-module": {
|
||||
"inputs": {
|
||||
"nixos-modules": "nixos-modules",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754772133,
|
||||
"narHash": "sha256-bGKm5L9ZzPzqKAK0Sp4l/nz/XOQnTkDhZWemHYytwvg=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "cc347c4545cd8b8add0f3fc43d593f2ffcecfdef",
|
||||
"revCount": 143,
|
||||
"type": "git",
|
||||
"url": "https://gitea.c3d2.de/C3D2/nix-user-module.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://gitea.c3d2.de/C3D2/nix-user-module.git"
|
||||
}
|
||||
},
|
||||
"determinate": {
|
||||
"inputs": {
|
||||
"determinate-nixd-aarch64-darwin": "determinate-nixd-aarch64-darwin",
|
||||
"determinate-nixd-aarch64-linux": "determinate-nixd-aarch64-linux",
|
||||
"determinate-nixd-x86_64-darwin": [
|
||||
"determinate",
|
||||
"determinate-nixd-aarch64-darwin"
|
||||
],
|
||||
"determinate-nixd-x86_64-linux": "determinate-nixd-x86_64-linux",
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1757033802,
|
||||
"narHash": "sha256-BLUHtWWoHFR6UJJJwkmivSv7RTjo92wlT0Y7kbCd2MY=",
|
||||
"rev": "e154f8433851f8f2509490f33680e3285d553df4",
|
||||
"revCount": 301,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/3.11.1/01991762-b4e5-7a3b-8bfc-5d0f1ed4965e/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/determinate/%2A"
|
||||
}
|
||||
},
|
||||
"determinate-nixd-aarch64-darwin": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-Dym4kTLMTxAxNyZcrHRKRVMBINQPA7qgr+7dHozNrps=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/macOS"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/macOS"
|
||||
}
|
||||
},
|
||||
"determinate-nixd-aarch64-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-eYVSpk+ly2YRSYvgT47ABmFRwG0DliNO/8ntBkoRmjI=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/aarch64-linux"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/aarch64-linux"
|
||||
}
|
||||
},
|
||||
"determinate-nixd-x86_64-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-ZvRoKG/v0WS2XrDgkV+/hq3ARGokGisyelncKwlefvk=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/x86_64-linux"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/x86_64-linux"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"determinate",
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748821116,
|
||||
"narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
|
||||
"rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
|
||||
"revCount": 377,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.377%2Brev-49f0870db23e8c1ca0b5259734a02cd9e1e371a1/01972f28-554a-73f8-91f4-d488cc502f08/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/hercules-ci/flake-parts/0.1"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"git-hooks-nix": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"gitignore": [
|
||||
"determinate",
|
||||
"nix"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"determinate",
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747372754,
|
||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||
"revCount": 1026,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/cachix/git-hooks.nix/0.1.1026%2Brev-80479b6ec16fefd9c1db3ea13aeb038c60530f46/0196d79a-1b35-7b8e-a021-c894fb62163d/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/cachix/git-hooks.nix/0.1.941"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1757385184,
|
||||
"narHash": "sha256-LCxtQn9ajvOgGRbQIRUJgfP7clMGGvV1SDW1HcSb0zk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "26993d87fd0d3b14f7667b74ad82235f120d986e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri": {
|
||||
"inputs": {
|
||||
"niri-stable": "niri-stable",
|
||||
"niri-unstable": "niri-unstable",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1757423134,
|
||||
"narHash": "sha256-CZpxYEwjxLDdF1xGtrPJU2DX8k7Q5ajDBjBrjlEswik=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "11d325391d1bbb4bb8f49010959f54bb1f6038b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756556321,
|
||||
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "YaLTeR",
|
||||
"ref": "v25.08",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1757358784,
|
||||
"narHash": "sha256-UNeUJW3c10z0aMJ87QKS85C/JgK9ng6pdRS0EwY6OLg=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "bdee1a657699a77bc4cdb050f7355f37f64c45a6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks-nix": "git-hooks-nix",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-23-11": "nixpkgs-23-11",
|
||||
"nixpkgs-regression": "nixpkgs-regression"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1757029043,
|
||||
"narHash": "sha256-/XtKs/hpYXJPeT3WppFVFZH1WvPDmeTt11hMWt/Bwas=",
|
||||
"rev": "7143558a0989008c8e08cc27c3cb6a031f30b356",
|
||||
"revCount": 22309,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.11.1/01991737-661d-7932-b7c9-d3a0499b4c3f/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/nix-src/%2A"
|
||||
}
|
||||
},
|
||||
"nix-index-db": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1757218147,
|
||||
"narHash": "sha256-IwOwN70HvoBNB2ckaROxcaCvj5NudNc52taPsv5wtLk=",
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "9b144dc3ef6e42b888c4190e02746aab13b0e97f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-index-database",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1757103352,
|
||||
"narHash": "sha256-PtT7ix43ss8PONJ1VJw3f6t2yAoGH+q462Sn8lrmWmk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "11b2a10c7be726321bb854403fdeec391e798bf0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "master",
|
||||
"repo": "nixos-hardware",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-modules": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"c3d2-user-module",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748287559,
|
||||
"narHash": "sha256-dvUE9HGwzEXyv6G7LuZFQCmRYFuXLJBO4+crCTxe5zs=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "nixos-modules",
|
||||
"rev": "9ae063877f8c5d42c39b739ae1d00f9657ad17f4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"repo": "nixos-modules",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1749143949,
|
||||
"narHash": "sha256-QuUtALJpVrPnPeozlUG/y+oIMSLdptHxb3GK6cpSVhA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d3d2d80a2191a73d1e86456a751b83aa13085d7d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-23-11": {
|
||||
"locked": {
|
||||
"lastModified": 1717159533,
|
||||
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1757341549,
|
||||
"narHash": "sha256-fRnT+bwP1sB6ne7BLw4aXkVYjr+QCZZ+e4MhbokHyd4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9d1fa9fa266631335618373f8faad570df6f9ede",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1755922037,
|
||||
"narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=",
|
||||
"rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c",
|
||||
"revCount": 808723,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.808723%2Brev-b1b3291469652d5a2edb0becc4ef0246fff97a7c/0198daf7-011a-7703-95d7-57146e794342/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.2505"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1756696532,
|
||||
"narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=",
|
||||
"rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f",
|
||||
"revCount": 854745,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.854745%2Brev-58dcbf1ec551914c3756c267b8b9c8c86baa1b2f/019908ed-e731-796e-b7c5-ea173f5d3b8d/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/0.1"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1757347588,
|
||||
"narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b599843bad24621dcaa5ab60dac98f9b0eb1cabe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1757347588,
|
||||
"narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b599843bad24621dcaa5ab60dac98f9b0eb1cabe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"quickshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756981260,
|
||||
"narHash": "sha256-GhuD9QVimjynHI0OOyZsqJsnlXr2orowh9H+HYz4YMs=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "6eb12551baf924f8fdecdd04113863a754259c34",
|
||||
"revCount": 672,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"c3d2-user-module": "c3d2-user-module",
|
||||
"determinate": "determinate",
|
||||
"home-manager": "home-manager",
|
||||
"niri": "niri",
|
||||
"nix-index-db": "nix-index-db",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"quickshell": "quickshell",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756662192,
|
||||
"narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xwayland-satellite-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1755491097,
|
||||
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"ref": "v0.7",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1757179758,
|
||||
"narHash": "sha256-TIvyWzRt1miQj6Cf5Wy8Qz43XIZX7c4vTVwRLAT5S4Y=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "970728d0d9d1eada342bb8860af214b601139e58",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
135
flake.nix
Normal file
135
flake.nix
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
{
|
||||
description = "A very basic flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
c3d2-user-module.url = "git+https://gitea.c3d2.de/C3D2/nix-user-module.git";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
niri.url = "github:sodiboo/niri-flake";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
treefmt-nix = {
|
||||
url = "github:numtide/treefmt-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/*";
|
||||
nix-index-db = {
|
||||
url = "github:Mic92/nix-index-database";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/quickshell/quickshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs@{ self
|
||||
, nixpkgs
|
||||
, c3d2-user-module
|
||||
, home-manager
|
||||
, niri
|
||||
, nixos-hardware
|
||||
, treefmt-nix
|
||||
, determinate
|
||||
, nix-index-db
|
||||
, quickshell
|
||||
,
|
||||
}:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
|
||||
# Configure treefmt
|
||||
treefmtEval = treefmt-nix.lib.evalModule pkgs {
|
||||
projectRootFile = "flake.nix";
|
||||
programs = {
|
||||
nixpkgs-fmt.enable = true;
|
||||
prettier = {
|
||||
enable = true;
|
||||
includes = [
|
||||
"*.json"
|
||||
"*.yaml"
|
||||
"*.yml"
|
||||
];
|
||||
};
|
||||
taplo.enable = true;
|
||||
};
|
||||
|
||||
settings = {
|
||||
global.excludes = [
|
||||
"*.lock"
|
||||
"result"
|
||||
".git/"
|
||||
"*.md"
|
||||
"*.sh"
|
||||
"*.py"
|
||||
"*.js"
|
||||
"*.ts"
|
||||
];
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations.p50 = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
niri.nixosModules.niri
|
||||
nixos-hardware.nixosModules.lenovo-thinkpad-p50
|
||||
./configuration.nix
|
||||
determinate.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.lucy =
|
||||
{ config
|
||||
, pkgs
|
||||
, lib
|
||||
, inputs
|
||||
, ...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./modules/home.nix
|
||||
];
|
||||
|
||||
# Configure dconf settings here or inside home.nix
|
||||
# Example:
|
||||
# home.sessionVariables = {
|
||||
# XDG_CURRENT_DESKTOP = "GNOME";
|
||||
# };
|
||||
};
|
||||
}
|
||||
c3d2-user-module.nixosModule
|
||||
./modules/nix.nix
|
||||
./modules/fonts.nix
|
||||
];
|
||||
};
|
||||
|
||||
# Add treefmt formatter
|
||||
formatter.${system} = treefmtEval.config.build.wrapper;
|
||||
|
||||
# Optional: Add a dev shell with treefmt
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
git
|
||||
treefmtEval.config.build.wrapper
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
echo "Development shell loaded!"
|
||||
echo "Run 'nix fmt' to format all files"
|
||||
echo "Run 'treefmt' to format with treefmt directly"
|
||||
'';
|
||||
};
|
||||
|
||||
# Optional: Add formatting check
|
||||
checks.${system} = {
|
||||
formatting = treefmtEval.config.build.check self;
|
||||
};
|
||||
};
|
||||
}
|
||||
65
hardware-configuration.nix
Normal file
65
hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "uas" "usbhid" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{
|
||||
device = "none";
|
||||
fsType = "tmpfs";
|
||||
options = [ "defaults" "size=8G" "mode=755" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{
|
||||
device = "/dev/disk/by-uuid/0777-71C3";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
fileSystems."/nix" =
|
||||
{
|
||||
device = "/dev/disk/by-uuid/3a8c6986-3105-4f1f-a75b-f72e4ec5ecdc";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."nix".device = "/dev/disk/by-uuid/439beee9-6797-41bc-bc4f-01bfe1a75166";
|
||||
|
||||
fileSystems."/etc/nixos" =
|
||||
{
|
||||
device = "/nix/persist/etc/nixos";
|
||||
fsType = "none";
|
||||
options = [ "bind" ];
|
||||
};
|
||||
|
||||
fileSystems."/var/log" =
|
||||
{
|
||||
device = "/nix/persist/var/log";
|
||||
fsType = "none";
|
||||
options = [ "bind" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
49
modules/alacritty.nix
Normal file
49
modules/alacritty.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{ ... }: {
|
||||
programs.alacritty.enable = true;
|
||||
programs.alacritty.settings = {
|
||||
window.opacity = 0.8;
|
||||
colors.bright = {
|
||||
black = "#444b6a";
|
||||
blue = "#7da6ff";
|
||||
cyan = "#0db9d7";
|
||||
green = "#b9f27c";
|
||||
magenta = "#bb9af7";
|
||||
red = "#ff7a93";
|
||||
white = "#acb0d0";
|
||||
yellow = "#ff9e64";
|
||||
};
|
||||
colors.normal = {
|
||||
black = "#32344a";
|
||||
blue = "#7aa2f7";
|
||||
cyan = "#449dab";
|
||||
green = "#9ece6a";
|
||||
magenta = "#ad8ee6";
|
||||
red = "#f7768e";
|
||||
white = "#787c99";
|
||||
yellow = "#e0af68";
|
||||
};
|
||||
colors.primary = {
|
||||
background = "#1a1b26";
|
||||
foreground = "#a9b1d6";
|
||||
};
|
||||
font = {
|
||||
normal = {
|
||||
family = "Iosevka";
|
||||
style = "Regular";
|
||||
};
|
||||
bold = {
|
||||
family = "Iosevka";
|
||||
style = "Bold";
|
||||
};
|
||||
italic = {
|
||||
family = "Iosevka";
|
||||
style = "Italic";
|
||||
};
|
||||
bold_italic = {
|
||||
family = "Iosevka";
|
||||
style = "Bold Italic";
|
||||
};
|
||||
size = 18.0; # Adjust the font size as needed
|
||||
};
|
||||
};
|
||||
}
|
||||
7
modules/fonts.nix
Normal file
7
modules/fonts.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
fonts.packages = with pkgs; [
|
||||
iosevka
|
||||
comic-mono
|
||||
];
|
||||
}
|
||||
27
modules/gammastep.nix
Normal file
27
modules/gammastep.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
services.gammastep = {
|
||||
enable = true;
|
||||
package = pkgs.gammastep.override {
|
||||
withRandr = false;
|
||||
withDrm = false;
|
||||
withVidmode = false;
|
||||
withAppIndicator = false;
|
||||
};
|
||||
|
||||
latitude = "-34.58";
|
||||
longitude = "-58.64";
|
||||
provider = "manual";
|
||||
temperature = {
|
||||
day = 5500;
|
||||
night = 3500;
|
||||
};
|
||||
settings = {
|
||||
general = {
|
||||
brightness-day = 1.0;
|
||||
brightness-night = 0.5;
|
||||
adjustment-method = "wayland";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
30
modules/helix.nix
Normal file
30
modules/helix.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, pkgs, ... }: {
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "autumn_night_transparent";
|
||||
editor.cursor-shape = {
|
||||
normal = "block";
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
};
|
||||
languages = {
|
||||
language = [{
|
||||
name = "nix";
|
||||
auto-format = true;
|
||||
formatter.command = "${pkgs.nixfmt}/bin/nixfmt";
|
||||
language-servers = [ "nixd" ];
|
||||
}];
|
||||
language-server.nixd = { command = lib.getExe pkgs.nixd; };
|
||||
};
|
||||
themes = {
|
||||
autumn_night_transparent = {
|
||||
"inherits" = "autumn_night";
|
||||
"ui.background" = { };
|
||||
};
|
||||
};
|
||||
extraPackages = with pkgs; [ nil rust-analyzer gopls ];
|
||||
};
|
||||
|
||||
}
|
||||
164
modules/home.nix
Normal file
164
modules/home.nix
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./helix.nix
|
||||
./alacritty.nix
|
||||
./nushell.nix
|
||||
./waybar.nix
|
||||
./niri
|
||||
./quickshell.nix
|
||||
./gammastep.nix
|
||||
./hypridle.nix
|
||||
];
|
||||
|
||||
# TODO please change the username & home directory to your own
|
||||
home.username = "lucy";
|
||||
home.homeDirectory = "/home/${config.home.username}";
|
||||
# link the configuration file in current directory to the specified location in home directory
|
||||
# home.file.".config/i3/wallpaper.jpg".source = ./wallpaper.jpg;
|
||||
|
||||
# link all files in `./scripts` to `~/.config/i3/scripts`
|
||||
# home.file.".config/i3/scripts" = {
|
||||
# source = ./scripts;
|
||||
# recursive = true; # link recursively
|
||||
# executable = true; # make all files executable
|
||||
# };
|
||||
|
||||
# encode the file content in nix configuration file directly
|
||||
# home.file.".xxx".text = ''
|
||||
# xxx
|
||||
# '';
|
||||
|
||||
manual = {
|
||||
html.enable = false;
|
||||
json.enable = false;
|
||||
manpages.enable = false;
|
||||
};
|
||||
|
||||
programs.nix-index = {
|
||||
enable = true;
|
||||
};
|
||||
/*
|
||||
stylix = {
|
||||
enable = true;
|
||||
polarity = "dark";
|
||||
opacity = {
|
||||
popups = 1.0;
|
||||
terminal = 1.0;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
serif = config.stylix.fonts.sansSerif;
|
||||
sansSerif = {
|
||||
package = pkgs.adwaita-fonts;
|
||||
name = "Adwaita Sans";
|
||||
};
|
||||
|
||||
monospace = {
|
||||
package = pkgs.nerd-fonts.geist-mono;
|
||||
name = "Geist Nerd Font Mono";
|
||||
};
|
||||
|
||||
emoji = {
|
||||
package = pkgs.noto-fonts-emoji;
|
||||
name = "Noto Color Emoji";
|
||||
};
|
||||
};
|
||||
};
|
||||
*/
|
||||
# set cursor size and dpi for 4k monitor
|
||||
|
||||
# Packages that should be installed to the user profile.
|
||||
home.packages = with pkgs; [
|
||||
# here is some command line tools I use frequently
|
||||
# feel free to add your own or remove some of them
|
||||
|
||||
aerc
|
||||
|
||||
hyfetch
|
||||
nnn # terminal file manager
|
||||
|
||||
prismlauncher
|
||||
|
||||
# archives
|
||||
zip
|
||||
xz
|
||||
unzip
|
||||
p7zip
|
||||
|
||||
# utils
|
||||
ripgrep # recursively searches directories for a regex pattern
|
||||
jq # A lightweight and flexible command-line JSON processor
|
||||
yq-go # yaml processor https://github.com/mikefarah/yq
|
||||
eza # A modern replacement for ‘ls’
|
||||
fzf # A command-line fuzzy finder
|
||||
|
||||
# networking tools
|
||||
mtr # A network diagnostic tool
|
||||
iperf3
|
||||
dnsutils # `dig` + `nslookup`
|
||||
ldns # replacement of `dig`, it provide the command `drill`
|
||||
aria2 # A lightweight multi-protocol & multi-source command-line download utility
|
||||
socat # replacement of openbsd-netcat
|
||||
nmap # A utility for network discovery and security auditing
|
||||
ipcalc # it is a calculator for the IPv4/v6 addresses
|
||||
|
||||
# misc
|
||||
cowsay
|
||||
file
|
||||
which
|
||||
tree
|
||||
gnused
|
||||
gnutar
|
||||
gawk
|
||||
zstd
|
||||
gnupg
|
||||
|
||||
# nix related
|
||||
#
|
||||
# it provides the command `nom` works just like `nix`
|
||||
# with more details log output
|
||||
nix-output-monitor
|
||||
|
||||
# productivity
|
||||
hugo # static site generator
|
||||
glow # markdown previewer in terminal
|
||||
|
||||
btop # replacement of htop/nmon
|
||||
iotop # io monitoring
|
||||
iftop # network monitoring
|
||||
|
||||
# system call monitoring
|
||||
strace # system call monitoring
|
||||
ltrace # library call monitoring
|
||||
lsof # list open files
|
||||
|
||||
# system tools
|
||||
sysstat
|
||||
lm_sensors # for `sensors` command
|
||||
ethtool
|
||||
pciutils # lspci
|
||||
usbutils # lsusb
|
||||
|
||||
tcsh
|
||||
fuzzel
|
||||
seatd
|
||||
jaq
|
||||
];
|
||||
# basic configuration of git, please change to your own
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Lucy von Overheidt";
|
||||
userEmail = "git@lucy.giving";
|
||||
};
|
||||
|
||||
home.stateVersion = "24.11";
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
}
|
||||
44
modules/hypridle.nix
Normal file
44
modules/hypridle.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
lock = "${pkgs.systemd}/bin/loginctl lock-session";
|
||||
|
||||
brillo = lib.getExe pkgs.brillo;
|
||||
|
||||
# timeout after which DPMS kicks in
|
||||
timeout = 300;
|
||||
in
|
||||
{
|
||||
# screen idle
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
general.lock_cmd = lib.getExe config.programs.hyprlock.package;
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = timeout - 10;
|
||||
# save the current brightness and dim the screen over a period of
|
||||
# 500 ms
|
||||
on-timeout = "${brillo} -O; ${brillo} -u 500000 -S 10";
|
||||
# brighten the screen over a period of 250ms to the saved value
|
||||
on-resume = "${brillo} -I -u 250000";
|
||||
}
|
||||
{
|
||||
inherit timeout;
|
||||
}
|
||||
{
|
||||
timeout = timeout + 10;
|
||||
on-timeout = lock;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.hypridle.Unit.After = lib.mkForce "graphical-session.target";
|
||||
}
|
||||
144
modules/niri/binds.nix
Normal file
144
modules/niri/binds.nix
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
lib = pkgs.lib;
|
||||
qs = "${pkgs.quickshell}/bin/qs";
|
||||
|
||||
# Niri built-in actions
|
||||
inherit (config.lib.niri.actions)
|
||||
spawn
|
||||
close-window
|
||||
maximize-column
|
||||
screenshot-window
|
||||
screenshot
|
||||
focus-column-left
|
||||
focus-column-right
|
||||
focus-workspace-up
|
||||
focus-workspace-down
|
||||
;
|
||||
|
||||
# Helper to call QuickShell
|
||||
qsCall =
|
||||
args:
|
||||
spawn (
|
||||
[
|
||||
qs
|
||||
"-c"
|
||||
"DankMaterialShell"
|
||||
"ipc"
|
||||
"call"
|
||||
]
|
||||
++ args
|
||||
);
|
||||
|
||||
# Generate workspace focus binds (Mod+1 to Mod+9)
|
||||
wsBinds = builtins.listToAttrs (
|
||||
builtins.genList (i: {
|
||||
name = "Mod+${toString (i + 1)}";
|
||||
value.action.focus-workspace = i + 1;
|
||||
}) 9
|
||||
);
|
||||
|
||||
in
|
||||
{
|
||||
programs.niri.settings.binds = lib.mkMerge [
|
||||
# --- Static Keybindings ---
|
||||
{
|
||||
# --- Media Keys ---
|
||||
|
||||
# --- Audio / Brightness ---
|
||||
"XF86AudioMute" = {
|
||||
allow-when-locked = true;
|
||||
action = qsCall [
|
||||
"audio"
|
||||
"mute"
|
||||
];
|
||||
};
|
||||
"XF86AudioMicMute" = {
|
||||
allow-when-locked = true;
|
||||
action = qsCall [
|
||||
"audio"
|
||||
"micmute"
|
||||
];
|
||||
};
|
||||
"XF86AudioRaiseVolume" = {
|
||||
allow-when-locked = true;
|
||||
action = qsCall [
|
||||
"audio"
|
||||
"increment"
|
||||
"5"
|
||||
];
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
allow-when-locked = true;
|
||||
action = qsCall [
|
||||
"audio"
|
||||
"decrement"
|
||||
"5"
|
||||
];
|
||||
};
|
||||
"XF86MonBrightnessUp" = {
|
||||
allow-when-locked = true;
|
||||
action = qsCall [
|
||||
"brightness"
|
||||
"increment"
|
||||
"5"
|
||||
"amdgpu_bl1"
|
||||
];
|
||||
};
|
||||
"XF86MonBrightnessDown" = {
|
||||
allow-when-locked = true;
|
||||
action = qsCall [
|
||||
"brightness"
|
||||
"decrement"
|
||||
"5"
|
||||
"amdgpu_bl1"
|
||||
];
|
||||
};
|
||||
|
||||
# --- System Actions ---
|
||||
"Ctrl+Alt+L".action = qsCall [
|
||||
"lock"
|
||||
"lock"
|
||||
];
|
||||
"Mod+V".action = qsCall [
|
||||
"clipboard"
|
||||
"toggle"
|
||||
];
|
||||
"Mod+U".action = qsCall [
|
||||
"settings"
|
||||
"toggle"
|
||||
];
|
||||
"Mod+M".action = qsCall [
|
||||
"processlist"
|
||||
"toggle"
|
||||
];
|
||||
|
||||
# --- Screenshots ---
|
||||
"Print".action.screenshot-screen = {
|
||||
write-to-disk = true;
|
||||
};
|
||||
"Mod+Shift+Alt+S".action = screenshot-window;
|
||||
"Mod+Shift+S".action.screenshot = {
|
||||
show-pointer = false;
|
||||
};
|
||||
|
||||
# --- Launchers ---
|
||||
"Mod+D".action = spawn (lib.getExe pkgs.fuzzel);
|
||||
"Mod+Return".action = spawn (lib.getExe pkgs.alacritty);
|
||||
|
||||
# --- Window / Layout ---
|
||||
"Mod+W".action = close-window;
|
||||
"Mod+F".action = maximize-column;
|
||||
|
||||
# --- Navigation ---
|
||||
"Mod+Left".action = focus-column-left;
|
||||
"Mod+Right".action = focus-column-right;
|
||||
"Mod+Down".action = focus-workspace-down;
|
||||
"Mod+Up".action = focus-workspace-up;
|
||||
}
|
||||
|
||||
# --- Dynamic Workspace Binds ---
|
||||
wsBinds
|
||||
];
|
||||
}
|
||||
8
modules/niri/default.nix
Normal file
8
modules/niri/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./settings.nix
|
||||
./binds.nix
|
||||
./rules.nix
|
||||
];
|
||||
}
|
||||
249
modules/niri/rules.nix
Normal file
249
modules/niri/rules.nix
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
_:
|
||||
let
|
||||
windowRules = [
|
||||
{
|
||||
geometry-corner-radius =
|
||||
let
|
||||
radius = 12.0;
|
||||
in
|
||||
{
|
||||
bottom-left = radius;
|
||||
bottom-right = radius;
|
||||
top-left = radius;
|
||||
top-right = radius;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
draw-border-with-background = false;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{ is-floating = true; }
|
||||
];
|
||||
shadow.enable = true;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
is-window-cast-target = true;
|
||||
}
|
||||
];
|
||||
focus-ring = {
|
||||
active.color = "#f38ba8";
|
||||
inactive.color = "#7d0d2d";
|
||||
};
|
||||
border = {
|
||||
inactive.color = "#7d0d2d";
|
||||
};
|
||||
shadow = {
|
||||
color = "#7d0d2d70";
|
||||
};
|
||||
tab-indicator = {
|
||||
active.color = "#f38ba8";
|
||||
inactive.color = "#7d0d2d";
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "org.telegram.desktop"; }];
|
||||
block-out-from = "screencast";
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "app.drey.PaperPlane"; }];
|
||||
block-out-from = "screencast";
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{ app-id = "zen"; }
|
||||
{ app-id = "firefox"; }
|
||||
{ app-id = "chromium-browser"; }
|
||||
{ app-id = "xdg-desktop-portal-gtk"; }
|
||||
];
|
||||
scroll-factor = 0.5;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{ app-id = "zen"; }
|
||||
{ app-id = "firefox"; }
|
||||
{ app-id = "chromium-browser"; }
|
||||
{ app-id = "edge"; }
|
||||
];
|
||||
open-maximized = true;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "firefox";
|
||||
title = "Picture-in-Picture";
|
||||
}
|
||||
];
|
||||
open-floating = true;
|
||||
default-floating-position = {
|
||||
x = 32;
|
||||
y = 32;
|
||||
relative-to = "bottom-right";
|
||||
};
|
||||
default-column-width = {
|
||||
fixed = 480;
|
||||
};
|
||||
default-window-height = {
|
||||
fixed = 270;
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "zen";
|
||||
title = "Picture-in-Picture";
|
||||
}
|
||||
];
|
||||
open-floating = true;
|
||||
default-floating-position = {
|
||||
x = 32;
|
||||
y = 32;
|
||||
relative-to = "bottom-right";
|
||||
};
|
||||
default-column-width = {
|
||||
fixed = 480;
|
||||
};
|
||||
default-window-height = {
|
||||
fixed = 270;
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Picture in picture"; }];
|
||||
open-floating = true;
|
||||
default-floating-position = {
|
||||
x = 32;
|
||||
y = 32;
|
||||
relative-to = "bottom-right";
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Discord Popout"; }];
|
||||
open-floating = true;
|
||||
default-floating-position = {
|
||||
x = 32;
|
||||
y = 32;
|
||||
relative-to = "bottom-right";
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "pavucontrol"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "pavucontrol-qt"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "com.saivert.pwvucontrol"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "io.github.fsobolev.Cavalier"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "dialog"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "popup"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "task_dialog"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "gcr-prompter"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "file-roller"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "org.gnome.FileRoller"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "nm-connection-editor"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "blueman-manager"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "xdg-desktop-portal-gtk"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "org.kde.polkit-kde-authentication-agent-1"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ app-id = "pinentry"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Progress"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "File Operations"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Copying"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Moving"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Properties"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Downloads"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "file progress"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Confirm"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Authentication Required"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Notice"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Warning"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
matches = [{ title = "Error"; }];
|
||||
open-floating = true;
|
||||
}
|
||||
];
|
||||
in
|
||||
{
|
||||
programs.niri.settings = {
|
||||
window-rules = windowRules;
|
||||
layer-rules = [
|
||||
{
|
||||
matches = [{ namespace = "^swww$"; }];
|
||||
place-within-backdrop = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
135
modules/niri/settings.nix
Normal file
135
modules/niri/settings.nix
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
makeCommand = command: {
|
||||
command = [ command ];
|
||||
};
|
||||
qs = "${pkgs.quickshell}/bin/qs";
|
||||
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
||||
in
|
||||
{
|
||||
programs.niri.settings = {
|
||||
environment = {
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
DISPLAY = ":0";
|
||||
GDK_BACKEND = "wayland,x11";
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
NIXOS_OZONE_WL = "1";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
};
|
||||
spawn-at-startup = [
|
||||
(makeCommand "${lib.getExe pkgs.hyprlock}")
|
||||
(makeCommand "${pkgs.swww}/bin/swww-daemon")
|
||||
{
|
||||
command = [
|
||||
"${wl-paste}"
|
||||
"--watch"
|
||||
"cliphist"
|
||||
"store"
|
||||
];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"${wl-paste}"
|
||||
"--type text"
|
||||
"--watch"
|
||||
"cliphist"
|
||||
"store"
|
||||
];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"${qs}"
|
||||
"-c"
|
||||
"DankMaterialShell"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
input = {
|
||||
touchpad = {
|
||||
click-method = "button-areas";
|
||||
dwt = true;
|
||||
dwtp = true;
|
||||
natural-scroll = true;
|
||||
scroll-method = "two-finger";
|
||||
tap = true;
|
||||
tap-button-map = "left-right-middle";
|
||||
middle-emulation = true;
|
||||
accel-profile = "adaptive";
|
||||
};
|
||||
focus-follows-mouse = {
|
||||
enable = true;
|
||||
max-scroll-amount = "90%";
|
||||
};
|
||||
warp-mouse-to-focus.enable = true;
|
||||
workspace-auto-back-and-forth = true;
|
||||
};
|
||||
|
||||
outputs = {
|
||||
"eDP-1" = {
|
||||
scale = 1.0;
|
||||
position = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
overview = {
|
||||
workspace-shadow.enable = false;
|
||||
backdrop-color = "transparent";
|
||||
};
|
||||
gestures = {
|
||||
hot-corners.enable = true;
|
||||
};
|
||||
layout = {
|
||||
focus-ring.enable = false;
|
||||
border = {
|
||||
enable = true;
|
||||
width = 2;
|
||||
#active.color = "#${base0D}";
|
||||
#inactive.color = "#${base07}";
|
||||
};
|
||||
shadow = {
|
||||
enable = false;
|
||||
};
|
||||
preset-column-widths = [
|
||||
{ proportion = 0.25; }
|
||||
{ proportion = 0.5; }
|
||||
{ proportion = 0.75; }
|
||||
{ proportion = 1.0; }
|
||||
];
|
||||
default-column-width = {
|
||||
proportion = 0.5;
|
||||
};
|
||||
|
||||
gaps = 6;
|
||||
struts = {
|
||||
left = 0;
|
||||
right = 0;
|
||||
top = 0;
|
||||
bottom = 0;
|
||||
};
|
||||
|
||||
tab-indicator = {
|
||||
hide-when-single-tab = true;
|
||||
place-within-column = true;
|
||||
position = "left";
|
||||
corner-radius = 20.0;
|
||||
gap = -12.0;
|
||||
gaps-between-tabs = 10.0;
|
||||
width = 4.0;
|
||||
length.total-proportion = 0.1;
|
||||
};
|
||||
};
|
||||
|
||||
prefer-no-csd = true;
|
||||
hotkey-overlay.skip-at-startup = true;
|
||||
};
|
||||
}
|
||||
8
modules/nix.nix
Normal file
8
modules/nix.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ ... }: {
|
||||
nix.settings = {
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
substituters = [ "https://nix-gaming.cachix.org" ];
|
||||
trusted-public-keys = [ "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" ];
|
||||
};
|
||||
}
|
||||
113
modules/nushell.nix
Normal file
113
modules/nushell.nix
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
{ lib, pkgs, ... }: {
|
||||
programs = {
|
||||
nushell = {
|
||||
enable = true;
|
||||
# The config.nu can be anywhere you want if you like to edit your Nushell with Nu
|
||||
#configFile.source = ./.../config.nu;
|
||||
# for editing directly to config.nu
|
||||
extraConfig = ''
|
||||
# Common ls aliases and sort them by type and then name
|
||||
# Inspired by https://github.com/nushell/nushell/issues/7190
|
||||
def lla [...args] { ls -la ...(if $args == [] {["."]} else {$args}) | sort-by type name -i }
|
||||
def la [...args] { ls -a ...(if $args == [] {["."]} else {$args}) | sort-by type name -i }
|
||||
def ll [...args] { ls -l ...(if $args == [] {["."]} else {$args}) | sort-by type name -i }
|
||||
def l [...args] { ls ...(if $args == [] {["."]} else {$args}) | sort-by type name -i }
|
||||
|
||||
# Completions
|
||||
# mainly pieced together from https://www.nushell.sh/cookbook/external_completers.html
|
||||
|
||||
# carapce completions https://www.nushell.sh/cookbook/external_completers.html#carapace-completer
|
||||
# + fix https://www.nushell.sh/cookbook/external_completers.html#err-unknown-shorthand-flag-using-carapace
|
||||
# enable the package and integration bellow
|
||||
let carapace_completer = {|spans: list<string>|
|
||||
carapace $spans.0 nushell ...$spans
|
||||
| from json
|
||||
| if ($in | default [] | where value == $"($spans | last)ERR" | is-empty) { $in } else { null }
|
||||
}
|
||||
# some completions are only available through a bridge
|
||||
# eg. tailscale
|
||||
# https://carapace-sh.github.io/carapace-bin/setup.html#nushell
|
||||
$env.CARAPACE_BRIDGES = 'zsh,fish,bash,inshellisense'
|
||||
|
||||
# fish completions https://www.nushell.sh/cookbook/external_completers.html#fish-completer
|
||||
let fish_completer = {|spans|
|
||||
${
|
||||
lib.getExe pkgs.fish
|
||||
} --command $'complete "--do-complete=($spans | str join " ")"'
|
||||
| $"value(char tab)description(char newline)" + $in
|
||||
| from tsv --flexible --no-infer
|
||||
}
|
||||
|
||||
# zoxide completions https://www.nushell.sh/cookbook/external_completers.html#zoxide-completer
|
||||
let zoxide_completer = {|spans|
|
||||
$spans | skip 1 | zoxide query -l ...$in | lines | where {|x| $x != $env.PWD}
|
||||
}
|
||||
|
||||
# multiple completions
|
||||
# the default will be carapace, but you can also switch to fish
|
||||
# https://www.nushell.sh/cookbook/external_completers.html#alias-completions
|
||||
let multiple_completers = {|spans|
|
||||
## alias fixer start https://www.nushell.sh/cookbook/external_completers.html#alias-completions
|
||||
let expanded_alias = scope aliases
|
||||
| where name == $spans.0
|
||||
| get -i 0.expansion
|
||||
|
||||
let spans = if $expanded_alias != null {
|
||||
$spans
|
||||
| skip 1
|
||||
| prepend ($expanded_alias | split row ' ' | take 1)
|
||||
} else {
|
||||
$spans
|
||||
}
|
||||
## alias fixer end
|
||||
|
||||
match $spans.0 {
|
||||
__zoxide_z | __zoxide_zi => $zoxide_completer
|
||||
_ => $carapace_completer
|
||||
} | do $in $spans
|
||||
}
|
||||
|
||||
$env.config = {
|
||||
show_banner: false,
|
||||
completions: {
|
||||
case_sensitive: false # case-sensitive completions
|
||||
quick: true # set to false to prevent auto-selecting completions
|
||||
partial: true # set to false to prevent partial filling of the prompt
|
||||
algorithm: "fuzzy" # prefix or fuzzy
|
||||
external: {
|
||||
# set to false to prevent nushell looking into $env.PATH to find more suggestions
|
||||
enable: true
|
||||
# set to lower can improve completion performance at the cost of omitting some options
|
||||
max_results: 100
|
||||
completer: $multiple_completers
|
||||
}
|
||||
}
|
||||
}
|
||||
$env.PATH = ($env.PATH |
|
||||
split row (char esep) |
|
||||
prepend /home/myuser/.apps |
|
||||
append /usr/bin/env
|
||||
)
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
fg = "job unfreeze";
|
||||
nano = "hx";
|
||||
vi = "hx";
|
||||
nvim = "hx";
|
||||
vim = "hx";
|
||||
devenv-init = "nix flake init --template github:cachix/devenv";
|
||||
devenv-enter = "nix develop --impure";
|
||||
rust-init = "nix flake init --template templates#rust";
|
||||
c-init = "nix flake init --template templates#c-hello";
|
||||
go-hello = "nix flake init --template templates#go-hello";
|
||||
haskell-hello = "nix flake init --template templates#haskell-hello";
|
||||
neofetch = "hyfetch";
|
||||
};
|
||||
};
|
||||
carapace.enable = true;
|
||||
carapace.enableNushellIntegration = true;
|
||||
|
||||
starship = { enable = true; };
|
||||
};
|
||||
}
|
||||
37
modules/quickshell.nix
Normal file
37
modules/quickshell.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
quickshell = inputs.quickshell.packages.${pkgs.system}.default;
|
||||
in
|
||||
{
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
quickshell
|
||||
]
|
||||
++ [
|
||||
inputs.mynixpkgs.packages.${pkgs.system}.dgop
|
||||
accountsservice
|
||||
brightnessctl
|
||||
cava
|
||||
cliphist
|
||||
ddcutil
|
||||
kdePackages.qt6ct
|
||||
khal
|
||||
material-symbols
|
||||
matugen
|
||||
swww
|
||||
wl-clipboard
|
||||
glib
|
||||
];
|
||||
|
||||
home.sessionVariables.QML2_IMPORT_PATH = lib.concatStringsSep ":" [
|
||||
"${quickshell}/lib/qt-6/qml"
|
||||
"${pkgs.kdePackages.qtdeclarative}/lib/qt-6/qml"
|
||||
"${pkgs.kdePackages.kirigami.unwrapped}/lib/qt-6/qml"
|
||||
];
|
||||
}
|
||||
4
modules/waybar.nix
Normal file
4
modules/waybar.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.waybar.enable = true;
|
||||
}
|
||||
18
persist.nix
Normal file
18
persist.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{ ... }: {
|
||||
# machine-id is used by systemd for the journal, if you don't
|
||||
# persist this file you won't be able to easily use journalctl to
|
||||
# look at journals for previous boots.
|
||||
environment.etc."machine-id".source = "/nix/persist/etc/machine-id";
|
||||
|
||||
|
||||
# if you want to run an openssh daemon, you may want to store the
|
||||
# host keys across reboots.
|
||||
#
|
||||
# For this to work you will need to create the directory yourself:
|
||||
# $ mkdir /nix/persist/etc/ssh
|
||||
environment.etc."ssh/ssh_host_rsa_key".source = "/nix/persist/etc/ssh/ssh_host_rsa_key";
|
||||
environment.etc."ssh/ssh_host_rsa_key.pub".source = "/nix/persist/etc/ssh/ssh_host_rsa_key.pub";
|
||||
environment.etc."ssh/ssh_host_ed25519_key".source = "/nix/persist/etc/ssh/ssh_host_ed25519_key";
|
||||
environment.etc."ssh/ssh_host_ed25519_key.pub".source = "/nix/persist/etc/ssh/ssh_host_ed25519_key.pub";
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue