Compare commits

...

3 Commits

Author SHA1 Message Date
d951277cec Add host modules and home options; update README 2025-11-24 01:38:45 +01:00
196db56791 Refactor home modules and update configs
- Remove unused `pkgs` import from hardware and adjust user stateVersion
to 25.11 with updated wheel comment. - Split Bash aliases and functions
into separate modules and rename `bash.nix` to `bash/default.nix` with
imports. - Delete old Bash alias/function files and consolidate them
under the new structure. - Simplify `bat.nix` by removing commented
style lines. - Increase Cava `frame_rate` from 60 to 144 and clean up
legacy color settings. - Refactor Chromium configuration: separate
extensions into `extensions.nix` and use a minimal default module. -
Replace large Kitty config with minimal enable/module and import
`extra-config.nix` and `settings.nix`. - Overhaul Librewolf setup:
extract profiles, extensions, search, and settings into dedicated files.
- Update home `default.nix` imports to reflect new module paths and
remove obsolete references. - Modularize SwayNC by moving settings and
style to separate files. - Add explicit Vesktop package definition. -
Remove old VSCode module; introduce VSCodium with profile-based
extensions, keybindings, and user settings. - Reorganize XDG portal and
desktop entries into modular files. - Rebuild Zed configuration: split
user settings, language models, languages, LSP, extensions, and extra
packages into distinct files.
2025-11-23 19:38:52 +01:00
900b565405 Update Zed configuration for nix LSP and formatter. 2025-11-23 16:34:22 +01:00
167 changed files with 5015 additions and 4504 deletions

View File

@@ -191,22 +191,35 @@ git add .
- `waybarChoice` - system top bar style.
- `animChoice` - system animation style.
### 5. Copy the ready `hardware-configuration.nix` to host folder:
### 5. Review module activation options
Open the module files for your host and adjust the `enable` options for the services you need:
```bash
# Homemodules (enable/disable home-scoped applications)
nano hosts/<your-system-hostname>/home-modules.nix
# Systemmodules (enable/disable systemwide services)
nano hosts/<your-system-hostname>/system-modules.nix
```
Set the options to `true` for the components you want active and `false` for those you dont need.
### 6. Copy the ready `hardware-configuration.nix` to host folder:
```bash
sudo cp /etc/nixos/hardware-configuration.nix hosts/<your-system-hostname>/hardware.nix
```
### 6. Enable `Flake` functionality in your system.
### 7. Enable `Flake` functionality in your system.
```bash
NIX_CONFIG="experimental-features = nix-command flakes"
```
### 7. Build system (provide your hostname)
### 8. Build system (provide your hostname)
```bash
sudo nixos-rebuild switch --flake .#your-system-hostname
```
### 8. After system rebuild you can use the following aliases instead of repeating the previous command
### 9. After system rebuild you can use the following aliases instead of repeating the previous command
- `pullos` - pull latest commits from my repository.
- `upd` - rebuild system.

12
flake.lock generated
View File

@@ -143,11 +143,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1763784262,
"narHash": "sha256-bg+MOwWA4GgsHQ2QZQHCixIs0ouPHvN1EVAzMTELPiQ=",
"lastModified": 1763929296,
"narHash": "sha256-mFTtmYp1gs1y8O9GKGsMWoMCXL5RLejUivBSRbRO34Y=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "a717a95e58c8dfdb3d07797b97fdedc97697d65c",
"rev": "84c6e18e927e4d3281a9afd70bcc0e4cafd8720d",
"type": "gitlab"
},
"original": {
@@ -324,11 +324,11 @@
]
},
"locked": {
"lastModified": 1763845215,
"narHash": "sha256-8W4YByiS3zxwcdDR2sABm1nUCSOEXJwdY/XddRTVjWM=",
"lastModified": 1763906693,
"narHash": "sha256-inm7paa3myo8gE4TzjM8OPvsEg8xocWreIZBgBPEKgo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "9a5042a88caea9b729a1d3bc981069159de4fc49",
"rev": "3d6c1c8fa0bea3a1a7ba23d6fa5993116766073b",
"type": "github"
},
"original": {

View File

@@ -51,20 +51,17 @@
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
};
outputs =
{
outputs = {
nixpkgs,
nix-flatpak,
auto-cpufreq,
...
}@inputs:
let
} @ inputs: let
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
mkHost =
hostName:
let
inherit (import ./hosts/${hostName}/variables.nix)
mkHost = hostName: let
inherit
(import ./hosts/${hostName}/variables.nix)
host
username
profile
@@ -86,8 +83,7 @@
auto-cpufreq.nixosModules.default
];
};
in
{
in {
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
};
}

View File

@@ -1,7 +1,7 @@
{ ... }:
{
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}

View File

@@ -6,8 +6,7 @@
lib,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];

View File

@@ -0,0 +1,66 @@
_: {
/*
Development editors and IDEs
*/
# VSCodium: a free and open-source "demicrosofted" VSCode
vscodium.enable = false;
# Zed Editor: a modern, highperformance code editor
zed-editor = {
# Enable Zed Editor
enable = true;
# Remote Server: enable remote editing capabilities
remote-server = true;
};
/*
Web browsers
*/
# Librewolf: a privacy-focused Firefox fork
librewolf.enable = true;
# Ungoogled Chromium: a privacy-focused Chromium fork
ungoogled-chromium.enable = true;
/*
System utilities
*/
# Btop: a resource monitor for the terminal
btop.enable = true;
# Cava: terminal audio visualizer
cava.enable = false;
# Fastfetch: a fast system information tool
fastfetch.enable = true;
/*
Communication and synchronization
*/
# KDE Connect: integrate your phone and desktop
kdeconnect.enable = false;
# Nextcloud Client: sync files with a Nextcloud server
nextcloud-client.enable = true;
# Vesktop: a communitydriven Discord client
vesktop.enable = true;
/*
Gaming
*/
# Lutris: an open gaming platform
lutris.enable = false;
/*
Media recording and streaming
*/
# OBS Studio: streaming and recording software
obs-studio.enable = false;
/*
Office suite
*/
# OnlyOffice: an office suite compatible with Microsoft formats
onlyoffice.enable = true;
/*
Learning tools
*/
# Anki: spacedrepetition flashcard program
anki.enable = true;
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];

View File

@@ -0,0 +1,87 @@
_: {
/*
Container & Packaging
*/
# Docker: container runtime and management
docker.enable = true;
# Distrobox: containerized development environments
distrobox.enable = false;
# Flatpak: universal packaging system for Linux
flatpak.enable = true;
# Lazydocker: simple TUI for Docker
lazydocker.enable = false;
/*
Gaming
*/
# GameMode: optimizes system performance for gaming
gamemode.enable = true;
# Gamescope: micro-compositor for games
gamescope.enable = false;
# Prism Launcher: Minecraft modded launcher
prismlauncher.enable = false;
# Steam: platform for buying and playing games
steam.enable = true;
# SpaceCadet Pinball: classic pinball game
spaceCadetPinball.enable = true;
# TTY Solitaire: terminal based solitaire game
ttySolitaire.enable = true;
/*
Development Tools
*/
# Exercism: coding practice platform
exercism.enable = true;
# Gedit: GNOME text editor
gedit.enable = false;
# Lazygit: simple TUI for git
lazygit.enable = false;
# OpenCode: tools for coding and development
opencode.enable = true;
/*
Communication & Collaboration
*/
# Mattermost: open-source Slack alternative
mattermost.enable = true;
# Slack: team communication and collaboration tool
slack.enable = true;
# Tutanota: secure email client
tutanota.enable = true;
/*
Productivity / Knowledge Management
*/
# Bitwarden: password manager (desktop)
bitwarden.enable = false;
# Iotas: lightweight notes manager
iotas.enable = true;
# Logseq: knowledge base and outliner
logseq.enable = false;
/*
Media & Graphics
*/
# Affinity: professional graphics suite
affinity.enable = false;
# Eye of GNOME: image viewer
eyeOfGnome.enable = true;
# FreeTube: privacyfriendly YouTube client
freetube.enable = false;
# GIMP: gnu image manipulation program
gimp.enable = false;
# Kdenlive: video editing software
kdenlive.enable = false;
# Plex: media player and server client
plex.enable = true;
/*
Utilities / Misc
*/
# Eddie AirVPN: VPN client
eddieAirVPN.enable = true;
# Galculator: simple calculator
galculator.enable = true;
# Winboat: Windows remote desktop via RDP
winboat.enable = false;
}

View File

@@ -1,7 +1,7 @@
{ ... }:
{
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}

View File

@@ -6,9 +6,7 @@
lib,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];

View File

@@ -0,0 +1,66 @@
_: {
/*
Development editors and IDEs
*/
# VSCodium: a free and open-source "demicrosofted" VSCode
vscodium.enable = false;
# Zed Editor: a modern, highperformance code editor
zed-editor = {
# Enable Zed Editor
enable = true;
# Remote Server: enable remote editing capabilities
remote-server = true;
};
/*
Web browsers
*/
# Librewolf: a privacy-focused Firefox fork
librewolf.enable = true;
# Ungoogled Chromium: a privacy-focused Chromium fork
ungoogled-chromium.enable = true;
/*
System utilities
*/
# Btop: a resource monitor for the terminal
btop.enable = true;
# Cava: terminal audio visualizer
cava.enable = false;
# Fastfetch: a fast system information tool
fastfetch.enable = true;
/*
Communication and synchronization
*/
# KDE Connect: integrate your phone and desktop
kdeconnect.enable = false;
# Nextcloud Client: sync files with a Nextcloud server
nextcloud-client.enable = true;
# Vesktop: a communitydriven Discord client
vesktop.enable = true;
/*
Gaming
*/
# Lutris: an open gaming platform
lutris.enable = false;
/*
Media recording and streaming
*/
# OBS Studio: streaming and recording software
obs-studio.enable = false;
/*
Office suite
*/
# OnlyOffice: an office suite compatible with Microsoft formats
onlyoffice.enable = true;
/*
Learning tools
*/
# Anki: spacedrepetition flashcard program
anki.enable = true;
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];

View File

@@ -0,0 +1,87 @@
_: {
/*
Container & Packaging
*/
# Docker: container runtime and management
docker.enable = true;
# Distrobox: containerized development environments
distrobox.enable = false;
# Flatpak: universal packaging system for Linux
flatpak.enable = true;
# Lazydocker: simple TUI for Docker
lazydocker.enable = false;
/*
Gaming
*/
# GameMode: optimizes system performance for gaming
gamemode.enable = true;
# Gamescope: micro-compositor for games
gamescope.enable = false;
# Prism Launcher: Minecraft modded launcher
prismlauncher.enable = false;
# Steam: platform for buying and playing games
steam.enable = true;
# SpaceCadet Pinball: classic pinball game
spaceCadetPinball.enable = true;
# TTY Solitaire: terminal based solitaire game
ttySolitaire.enable = true;
/*
Development Tools
*/
# Exercism: coding practice platform
exercism.enable = true;
# Gedit: GNOME text editor
gedit.enable = false;
# Lazygit: simple TUI for git
lazygit.enable = false;
# OpenCode: tools for coding and development
opencode.enable = true;
/*
Communication & Collaboration
*/
# Mattermost: open-source Slack alternative
mattermost.enable = true;
# Slack: team communication and collaboration tool
slack.enable = true;
# Tutanota: secure email client
tutanota.enable = true;
/*
Productivity / Knowledge Management
*/
# Bitwarden: password manager (desktop)
bitwarden.enable = false;
# Iotas: lightweight notes manager
iotas.enable = true;
# Logseq: knowledge base and outliner
logseq.enable = false;
/*
Media & Graphics
*/
# Affinity: professional graphics suite
affinity.enable = false;
# Eye of GNOME: image viewer
eyeOfGnome.enable = true;
# FreeTube: privacyfriendly YouTube client
freetube.enable = false;
# GIMP: gnu image manipulation program
gimp.enable = false;
# Kdenlive: video editing software
kdenlive.enable = false;
# Plex: media player and server client
plex.enable = true;
/*
Utilities / Misc
*/
# Eddie AirVPN: VPN client
eddieAirVPN.enable = true;
# Galculator: simple calculator
galculator.enable = true;
# Winboat: Windows remote desktop via RDP
winboat.enable = false;
}

View File

@@ -1,7 +1,7 @@
{ ... }:
{
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}

View File

@@ -4,12 +4,9 @@
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
@@ -29,8 +26,7 @@
fsType = "ext4";
};
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device =
"/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device = "/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/C2A6-DF56";

View File

@@ -0,0 +1,66 @@
_: {
/*
Development editors and IDEs
*/
# VSCodium: a free and open-source "demicrosofted" VSCode
vscodium.enable = false;
# Zed Editor: a modern, highperformance code editor
zed-editor = {
# Enable Zed Editor
enable = true;
# Remote Server: enable remote editing capabilities
remote-server = true;
};
/*
Web browsers
*/
# Librewolf: a privacy-focused Firefox fork
librewolf.enable = true;
# Ungoogled Chromium: a privacy-focused Chromium fork
ungoogled-chromium.enable = true;
/*
System utilities
*/
# Btop: a resource monitor for the terminal
btop.enable = true;
# Cava: terminal audio visualizer
cava.enable = false;
# Fastfetch: a fast system information tool
fastfetch.enable = true;
/*
Communication and synchronization
*/
# KDE Connect: integrate your phone and desktop
kdeconnect.enable = false;
# Nextcloud Client: sync files with a Nextcloud server
nextcloud-client.enable = true;
# Vesktop: a communitydriven Discord client
vesktop.enable = true;
/*
Gaming
*/
# Lutris: an open gaming platform
lutris.enable = false;
/*
Media recording and streaming
*/
# OBS Studio: streaming and recording software
obs-studio.enable = false;
/*
Office suite
*/
# OnlyOffice: an office suite compatible with Microsoft formats
onlyoffice.enable = true;
/*
Learning tools
*/
# Anki: spacedrepetition flashcard program
anki.enable = true;
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];

View File

@@ -0,0 +1,87 @@
_: {
/*
Container & Packaging
*/
# Docker: container runtime and management
docker.enable = true;
# Distrobox: containerized development environments
distrobox.enable = false;
# Flatpak: universal packaging system for Linux
flatpak.enable = true;
# Lazydocker: simple TUI for Docker
lazydocker.enable = false;
/*
Gaming
*/
# GameMode: optimizes system performance for gaming
gamemode.enable = true;
# Gamescope: micro-compositor for games
gamescope.enable = false;
# Prism Launcher: Minecraft modded launcher
prismlauncher.enable = false;
# Steam: platform for buying and playing games
steam.enable = true;
# SpaceCadet Pinball: classic pinball game
spaceCadetPinball.enable = true;
# TTY Solitaire: terminal based solitaire game
ttySolitaire.enable = true;
/*
Development Tools
*/
# Exercism: coding practice platform
exercism.enable = true;
# Gedit: GNOME text editor
gedit.enable = false;
# Lazygit: simple TUI for git
lazygit.enable = false;
# OpenCode: tools for coding and development
opencode.enable = true;
/*
Communication & Collaboration
*/
# Mattermost: open-source Slack alternative
mattermost.enable = true;
# Slack: team communication and collaboration tool
slack.enable = true;
# Tutanota: secure email client
tutanota.enable = true;
/*
Productivity / Knowledge Management
*/
# Bitwarden: password manager (desktop)
bitwarden.enable = false;
# Iotas: lightweight notes manager
iotas.enable = true;
# Logseq: knowledge base and outliner
logseq.enable = false;
/*
Media & Graphics
*/
# Affinity: professional graphics suite
affinity.enable = false;
# Eye of GNOME: image viewer
eyeOfGnome.enable = true;
# FreeTube: privacyfriendly YouTube client
freetube.enable = false;
# GIMP: gnu image manipulation program
gimp.enable = false;
# Kdenlive: video editing software
kdenlive.enable = false;
# Plex: media player and server client
plex.enable = true;
/*
Utilities / Misc
*/
# Eddie AirVPN: VPN client
eddieAirVPN.enable = true;
# Galculator: simple calculator
galculator.enable = true;
# Winboat: Windows remote desktop via RDP
winboat.enable = false;
}

View File

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

View File

@@ -3,9 +3,7 @@
config,
lib,
...
}:
{
}: {
boot = {
kernelPackages = pkgs.linuxPackages_zen;
kernelModules = ["v4l2loopback"];

View File

@@ -1,12 +1,9 @@
{
inputs,
...
}:
{
{inputs, ...}: {
imports = [
./packages
./auto-cpufreq.nix
./boot.nix
./docker.nix
./flatpak.nix
./fonts.nix
./hardware.nix
@@ -23,7 +20,6 @@
./system.nix
./thunar.nix
./user.nix
./virtualisation.nix
./xdg.nix
./xserver.nix
inputs.stylix.nixosModules.stylix

14
modules/core/docker.nix Normal file
View File

@@ -0,0 +1,14 @@
{
pkgs,
lib,
config,
...
}: {
options.docker.enable = lib.mkEnableOption "Docker";
config.virtualisation.docker = lib.mkIf config.docker.enable {
enable = true;
package = pkgs.docker;
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
};
}

View File

@@ -1,13 +1,17 @@
_: {
services = {
flatpak = {
{
lib,
config,
...
}: {
options.flatpak.enable = lib.mkEnableOption "Flatpak";
config.services.flatpak = lib.mkIf config.flatpak.enable {
enable = true;
update.onActivation = true;
packages = [
# "org.vinegarhq.Sober"
"io.github.flattool.Warehouse"
"com.github.tchx84.Flatseal"
];
update.onActivation = true;
};
};
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
fonts = {
packages = with pkgs; [
dejavu_fonts

View File

@@ -2,8 +2,7 @@
pkgs,
username,
...
}:
{
}: {
services.greetd = {
enable = true;
#vt = 3;

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
hardware = {
sane = {
enable = true;

View File

@@ -2,11 +2,9 @@
host,
options,
...
}:
let
}: let
inherit (import ../../hosts/${host}/variables.nix) hostId;
in
{
in {
# Defensive assertion for hostname validity (clearer message at eval time)
assertions = [
{

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
in
{
in {
services = {
rpcbind.enable = enableNFS;
nfs.server.enable = enableNFS;

View File

@@ -1,8 +1,4 @@
{
username,
...
}:
{
{username, ...}: {
programs.nh = {
enable = true;
clean = {

View File

@@ -1,18 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Communication
slack
mattermost-desktop
# Productivity & Office
# bitwarden-desktop
tutanota-desktop
iotas
# logseq
# Utilities
galculator
gedit
eddie
gnome-text-editor
];
}

View File

@@ -1,14 +1,8 @@
{ ... }:
{
_: {
nixpkgs.config.allowUnfree = true;
imports = [
./essentials.nix
./packages.nix
./programs.nix
./clients.nix
./development.nix
./gaming.nix
./multimedia.nix
./terminal.nix
./tools.nix
./virtualization.nix
];
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Learning & practice
exercism
# AI coding
opencode
];
}

View File

@@ -1,6 +1,12 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
mpv
pavucontrol
playerctl
cmatrix
cowsay
sl
fortune
# File management
trash-cli
file-roller

View File

@@ -1,13 +0,0 @@
{
pkgs,
# inputs,
# system,
...
}:
{
environment.systemPackages = with pkgs; [
# inputs.prismlauncher-cracked.packages.${system}.default
space-cadet-pinball
tty-solitaire
];
}

View File

@@ -1,27 +0,0 @@
{
pkgs,
# inputs,
# system,
...
}:
{
environment.systemPackages = with pkgs; [
# Video & image processing
ffmpeg
ffmpegthumbnailer
mpv
# gimp3
# inputs.affinity-nix.packages.${system}.v3
eog
# kdePackages.kdenlive
# Audio
rhythmbox
plexamp
picard
pavucontrol
playerctl
# Media downloaders & clients
# freetube
# ytmdl
];
}

View File

@@ -0,0 +1,47 @@
{
pkgs,
lib,
config,
inputs,
system,
...
}: let
mkPackage = name: pkgsOrList: {
options.${name}.enable = lib.mkEnableOption name;
config.environment.systemPackages =
lib.mkIf config.${name}.enable
(lib.toList pkgsOrList);
};
packages = with pkgs; {
bitwarden = bitwarden-desktop;
eddieAirVPN = eddie;
galculator = galculator;
gedit = gedit;
iotas = iotas;
logseq = logseq;
mattermost = mattermost-desktop;
slack = slack;
tutanota = tutanota-desktop;
exercism = exercism;
opencode = opencode;
lazygit = lazygit;
prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default;
spaceCadetPinball = space-cadet-pinball;
ttySolitaire = tty-solitaire;
gimp = gimp;
affinity = inputs.affinity-nix.packages.${system}.v3;
eyeOfGnome = eog;
kdenlive = kdePackages.kdenlive;
plex = [
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};})
plexamp
];
freetube = freetube;
lazydocker = lazydocker;
distrobox = [distrobox pkgs.boxbuddy];
winboat = [winboat freerdp];
};
in {
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
}

View File

@@ -1,8 +1,8 @@
{
# {
# pkgs
...
}:
{
# ...
# }
_: {
programs = {
nano.enable = true;
hyprland = {

View File

@@ -1,11 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
cmatrix
cowsay
sl
fortune
lolcat
eza
];
}

View File

@@ -1,12 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
virt-viewer
# lazydocker
docker-client
# distrobox
# boxbuddy
# freerdp
# winboat
];
}

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) printEnable;
in
{
in {
services = {
printing = {
enable = printEnable;

View File

@@ -1,5 +1,4 @@
{ profile, ... }:
{
{profile, ...}: {
# Services to start
services = {
libinput.enable = true; # Input Handling
@@ -19,7 +18,10 @@
gnome.gnome-keyring.enable = true;
smartd = {
enable = if profile == "vm" then false else true;
enable =
if profile == "vm"
then false
else true;
autodetect = true;
};
pipewire = {

View File

@@ -1,21 +1,43 @@
{ pkgs, ... }:
{
programs = {
steam = {
pkgs,
lib,
config,
...
}: {
options = {
steam.enable = lib.mkEnableOption "Steam";
gamescope.enable = lib.mkEnableOption "Gamescope";
gamemode.enable = lib.mkEnableOption "Gamemode";
};
config.programs = {
steam = lib.mkIf config.steam.enable {
enable = true;
package = pkgs.steam;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
gamescopeSession.enable = true;
gamescopeSession = lib.mkIf config.gamescope.enable {
enable = true;
args = [
"--rt"
"--expose-wayland"
];
};
extraCompatPackages = [pkgs.proton-ge-bin];
};
# gamescope = {
# enable = true;
# capSysNice = true;
# args = [
# "--rt"
# "--expose-wayland"
# ];
# };
gamemode.enable = true;
gamescope = lib.mkIf config.gamescope.enable {
enable = true;
capSysNice = true;
args = [
"--rt"
"--expose-wayland"
];
};
gamemode = lib.mkIf config.gamemode.enable {
enable = true;
enableRenice = true;
};
};
}

View File

@@ -2,11 +2,9 @@
pkgs,
host,
...
}:
let
}: let
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
in
{
in {
# Styling Options
stylix = {
enable = true;

View File

@@ -1,5 +1,4 @@
{ username, ... }:
{
{username, ...}: {
services.syncthing = {
enable = false;
user = "${username}";

View File

@@ -1,9 +1,12 @@
{ host, ... }:
let
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
in
{
host,
inputs,
...
}: let
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
in {
nix = {
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
settings = {
download-buffer-size = 200000000;
auto-optimise-store = true;
@@ -16,8 +19,9 @@ in
};
};
time.timeZone = "Europe/Warsaw";
i18n.defaultLocale = "pl_PL.UTF-8";
i18n.extraLocaleSettings = {
i18n = {
defaultLocale = "pl_PL.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "pl_PL.UTF-8";
LC_IDENTIFICATION = "pl_PL.UTF-8";
LC_MEASUREMENT = "pl_PL.UTF-8";
@@ -28,6 +32,7 @@ in
LC_TELEPHONE = "pl_PL.UTF-8";
LC_TIME = "pl_PL.UTF-8";
};
};
environment.variables = {
NIXOS_OZONE_WL = "1";
GARANDOS_VERSION = "1.0";

View File

@@ -1,15 +1,9 @@
{
pkgs,
...
}:
{
programs = {
thunar = {
{pkgs, ...}: {
programs.thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
};
}

View File

@@ -6,11 +6,9 @@
profile,
system,
...
}:
let
}: let
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
in
{
in {
imports = [inputs.home-manager.nixosModules.home-manager];
home-manager = {
useUserPackages = true;
@@ -26,16 +24,17 @@ in
;
};
users.${username} = {
imports = [ ./../home ];
imports = [./../home ../../hosts/${host}/home-modules.nix];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "23.11";
stateVersion = "25.11";
};
};
};
users.mutableUsers = true;
users.users.${username} = {
users = {
mutableUsers = true;
users.${username} = {
isNormalUser = true;
description = "${gitUsername}";
extraGroups = [
@@ -45,12 +44,14 @@ in
"lp"
"networkmanager"
"scanner"
"wheel" # subdo access
"wheel" # sudo access
"vboxusers" # Virtual Box
"gamemode"
];
shell = pkgs.bash;
ignoreShellProgramCheck = true;
linger = true;
};
};
nix.settings.allowed-users = ["${username}"];
}

View File

@@ -1,16 +0,0 @@
{ ... }:
{
# Only enable either docker or podman -- Not both
virtualisation = {
docker.enable = true;
podman.enable = false;
libvirtd.enable = true;
virtualbox.host = {
enable = false;
enableExtensionPack = true;
};
};
programs.virt-manager.enable = false;
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
xdg.portal = {
enable = true;
wlr.enable = true;
@@ -8,5 +7,6 @@
xdg-desktop-portal-gtk
];
configPackages = [pkgs.hyprland];
xdgOpenUsePortal = true;
};
}

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
in
{
in {
services.xserver = {
enable = true;
xkb = {

View File

@@ -4,11 +4,9 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.drivers.amdgpu;
in
{
in {
options.drivers.amdgpu = {
enable = mkEnableOption "Enable AMD Drivers";
};

View File

@@ -1,7 +1,4 @@
{
...
}:
{
{...}: {
imports = [
./amd-drivers.nix
./intel-drivers.nix

View File

@@ -4,11 +4,9 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.drivers.intel;
in
{
in {
options.drivers.intel = {
enable = mkEnableOption "Enable Intel Graphics Drivers";
};

View File

@@ -4,11 +4,9 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.local.hardware-clock;
in
{
in {
options.local.hardware-clock = {
enable = mkEnableOption "Change Hardware Clock To Local Time";
};

View File

@@ -4,11 +4,9 @@
pkgs,
...
}:
with lib;
let
with lib; let
cfg = config.drivers.nvidia;
in
{
in {
options.drivers.nvidia = {
enable = mkEnableOption "Enable Nvidia Drivers";
};
@@ -43,7 +41,6 @@ in
};
};
}
# Making nvidia docker toolkit work:
#
# sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
@@ -59,3 +56,4 @@ in
# EOF
#
# docker run --device nvidia.com/gpu=all

View File

@@ -4,11 +4,9 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.drivers.nvidia-prime;
in
{
in {
options.drivers.nvidia-prime = {
enable = mkEnableOption "Enable Nvidia Prime Hybrid GPU Offload";
intelBusID = mkOption {

View File

@@ -4,11 +4,9 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.vm.guest-services;
in
{
in {
options.vm.guest-services = {
enable = mkEnableOption "Enable Virtual Machine Guest Services";
};

View File

@@ -1,6 +1,13 @@
{ pkgs, username, ... }:
{
programs.anki = {
pkgs,
username,
lib,
config,
...
}: {
options.anki.enable = lib.mkEnableOption "Anki";
config.programs.anki = lib.mkIf config.anki.enable {
enable = true;
package = pkgs.anki;
language = "pl_PL";

View File

@@ -1,127 +0,0 @@
{ host, username, ... }:
{
programs.bash = {
shellAliases = {
# GarandOS aliases
pullos = "git -C /home/${username}/garandos pull";
upd = "nh os switch --hostname ${host}";
upg = "nh os switch --hostname ${host} --update";
upf = "sudo nix flake update";
upd-bt = "nh os boot --hostname ${host}";
upd-ts = "nh os test --hostname ${host}";
upd-bd = "nh os build --hostname ${host}";
ncg = "nh clean all";
# Development aliases
srvenv = "source .venv/bin/activate";
"..srvenv" = "source ../.venv/bin/activate";
pm = "uv run manage.py";
f8 = "uv run flake8 .";
bbr = "bun --bun run";
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
zed = "MANGOHUD=0 /home/${username}/.local/bin/zed";
# Development aliases for nix flake
nd = "nix develop";
nb = "nix build";
nr = "nix run";
nbr = "nix build && nix run";
nbd = "nix build .#develop";
nrd = "nix run .#develop";
nbrd = "nix build .#develop && nix run .#develop";
# System aliases
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
kys = "shutdown now";
ookla = "speedtest";
hypr-cli = "hyprctl clients";
# Navigation aliases
"~" = "cd ~";
".." = "cd ..";
"..." = "cd ../..";
"...." = "cd ../../..";
"....." = "cd ../../../..";
# Modifies commands
cat = "bat";
cp = "cp -i";
mv = "mv -i";
rm = "trash -v";
mkdir = "mkdir -p";
ps = "ps auxf";
ping = "ping -c 10";
less = "less -R";
cls = "clear";
multitail = "multitail --no-repeat -c";
freshclam = "sudo freshclam";
# Alias"s for multiple directory listing commands
la = "eza -alh --icons"; # show hidden files
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
lx = "eza -lh --icons --sort=extension"; # sort by extension
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
lc = "eza -lh --icons --sort=changed"; # sort by change time
lu = "eza -lh --icons --sort=accessed"; # sort by access time
lr = "eza -lh --icons --recurse"; # recursive ls
lt = "eza -lh --icons --sort=modified"; # sort by date
lm = "eza -alh --icons | more"; # pipe through "more"
lw = "eza -xh --icons"; # wide listing format
ll = "eza -lh --icons"; # long listing format
labc = "eza -lah --icons --sort=name"; # alphabetical sort
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
ldir = "eza -lh --icons --only-dirs"; # directories only
lla = "eza -alh --icons"; # List and Hidden Files
las = "eza -a --icons"; # Hidden Files
lls = "eza -lh --icons"; # List
# chmod commands
mx = "chmod a+x";
"000" = "chmod -R 000";
"644" = "chmod -R 644";
"666" = "chmod -R 666";
"755" = "chmod -R 755";
"777" = "chmod -R 777";
# Search command line history
h = "history | grep ";
# Search running processes
p = "ps aux | grep ";
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
# Search files in the current folder
f = "find . | grep ";
# Count all files (recursively) in the current folder
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
# Alias"s to show disk space and space used in a folder
diskspace = "du -S | sort -n -r |more";
folders = "du -h --max-depth=1";
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
tree = "tree -CAhF --dirsfirst";
treed = "tree -CAFd";
mountedinfo = "df -hT";
# Show all logs in /var/log
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
# fix kitty ssh connection
kssh = "kitty +kitten ssh";
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
# Remove a directory and all files
rmd = "/bin/rm --recursive --force --verbose ";
# Fun aliases
pasjans = "ttysolitaire -p 10 --no-background-color";
fc = "fortune | cowsay";
# Network aliases
kssh-server = "kssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
ssh-server = "ssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
};
};
}

View File

@@ -1,146 +0,0 @@
_: {
programs.bash = {
bashrcExtra = ''
# Quick directory creation and navigation
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Extract various archive formats
extract() {
for archive in "$@"; do
if [ -f "$archive" ]; then
case "$archive" in
*.tar.bz2) tar xvjf "$archive" ;;
*.tar.gz) tar xvzf "$archive" ;;
*.bz2) bunzip2 "$archive" ;;
*.rar) unrar x "$archive" ;;
*.gz) gunzip "$archive" ;;
*.tar) tar xvf "$archive" ;;
*.tbz2) tar xvjf "$archive" ;;
*.tgz) tar xvzf "$archive" ;;
*.zip) unzip "$archive" ;;
*.Z) uncompress "$archive" ;;
*.7z) 7z x "$archive" ;;
*) echo "don't know how to extract '$archive'..." ;;
esac
else
echo "'$archive' is not a valid file!"
fi
done
}
# Find files quickly
ff() {
find . -name "*$1*" -type f
}
# Find directories quickly
fd() {
find . -name "*$1*" -type d
}
# IP address lookup
alias whatismyip="whatsmyip"
function whatsmyip () {
# Internal IP Lookup.
if command -v ip &> /dev/null; then
echo -n "Internal IP: "
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
else
echo -n "Internal IP: "
ifconfig wlan0 | grep "inet " | awk '{print $2}'
fi
# External IP Lookup
echo -n "External IP: "
curl -4 ifconfig.me
}
# Searches for text in all files in the current folder
ftext() {
# -i case-insensitive
# -I ignore binary files
# -H causes filename to be printed
# -r recursive search
# -n causes line number to be printed
# optional: -F treat search term as a literal, not a regular expression
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
grep -iIHrn --color=always "$1" . | less -r
}
# Copy file with a progress bar
cpp() {
set -e
strace -q -ewrite cp -- "$1" "$2" 2>&1 |
awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf "%3d%% [", percent
for (i=0;i<=percent;i++)
printf "="
printf ">"
for (i=percent;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' total_size="$(stat -c '%s' "$1")" count=0
}
# Copy and go to the directory
cpg() {
if [ -d "$2" ]; then
cp "$1" "$2" && cd "$2"
else
cp "$1" "$2"
fi
}
# Move and go to the directory
mvg() {
if [ -d "$2" ]; then
mv "$1" "$2" && cd "$2"
else
mv "$1" "$2"
fi
}
# Create and go to the directory
mkdirg() {
mkdir -p "$1"
cd "$1"
}
# Goes up a specified number of directories (i.e. up 4)
up() {
local d=""
limit=$1
for ((i = 1; i <= limit; i++)); do
d=$d/..
done
d=$(echo $d | sed 's/^\///')
if [ -z "$d" ]; then
d=..
fi
cd $d
}
# Automatically do an ls after each cd, z, or zoxide
cd ()
{
if [ -n "$1" ]; then
builtin cd "$@" && ls
else
builtin cd ~ && ls
fi
}
# Returns the last 2 fields of the working directory
pwdtail() {
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
}
'';
};
}

View File

@@ -0,0 +1,128 @@
{
username,
host,
...
}: {
programs.bash.shellAliases = {
# GarandOS aliases
pullos = "git -C /home/${username}/garandos pull";
upd = "nh os switch --hostname ${host}";
upg = "nh os switch --hostname ${host} --update";
upf = "sudo nix flake update";
upd-bt = "nh os boot --hostname ${host}";
upd-ts = "nh os test --hostname ${host}";
upd-bd = "nh os build --hostname ${host}";
ncg = "nh clean all";
# Development aliases
srvenv = "source .venv/bin/activate";
"..srvenv" = "source ../.venv/bin/activate";
pm = "uv run manage.py";
f8 = "uv run flake8 .";
bbr = "bun --bun run";
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
zed = "MANGOHUD=0 /home/${username}/.local/bin/zed";
# Development aliases for nix flake
nd = "nix develop";
nb = "nix build";
nr = "nix run";
nbr = "nix build && nix run";
nbd = "nix build .#develop";
nrd = "nix run .#develop";
nbrd = "nix build .#develop && nix run .#develop";
# System aliases
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
kys = "shutdown now";
ookla = "speedtest";
hypr-cli = "hyprctl clients";
# Navigation aliases
"~" = "cd ~";
".." = "cd ..";
"..." = "cd ../..";
"...." = "cd ../../..";
"....." = "cd ../../../..";
# Modifies commands
cat = "bat";
cp = "cp -i";
mv = "mv -i";
rm = "trash -v";
mkdir = "mkdir -p";
ps = "ps auxf";
ping = "ping -c 10";
less = "less -R";
cls = "clear";
multitail = "multitail --no-repeat -c";
freshclam = "sudo freshclam";
# Alias"s for multiple directory listing commands
la = "eza -alh --icons"; # show hidden files
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
lx = "eza -lh --icons --sort=extension"; # sort by extension
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
lc = "eza -lh --icons --sort=changed"; # sort by change time
lu = "eza -lh --icons --sort=accessed"; # sort by access time
lr = "eza -lh --icons --recurse"; # recursive ls
lt = "eza -lh --icons --sort=modified"; # sort by date
lm = "eza -alh --icons | more"; # pipe through "more"
lw = "eza -xh --icons"; # wide listing format
ll = "eza -lh --icons"; # long listing format
labc = "eza -lah --icons --sort=name"; # alphabetical sort
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
ldir = "eza -lh --icons --only-dirs"; # directories only
lla = "eza -alh --icons"; # List and Hidden Files
las = "eza -a --icons"; # Hidden Files
lls = "eza -lh --icons"; # List
# chmod commands
mx = "chmod a+x";
"000" = "chmod -R 000";
"644" = "chmod -R 644";
"666" = "chmod -R 666";
"755" = "chmod -R 755";
"777" = "chmod -R 777";
# Search command line history
h = "history | grep ";
# Search running processes
p = "ps aux | grep ";
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
# Search files in the current folder
f = "find . | grep ";
# Count all files (recursively) in the current folder
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
# Alias"s to show disk space and space used in a folder
diskspace = "du -S | sort -n -r |more";
folders = "du -h --max-depth=1";
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
tree = "tree -CAhF --dirsfirst";
treed = "tree -CAFd";
mountedinfo = "df -hT";
# Show all logs in /var/log
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
# fix kitty ssh connection
kssh = "kitty +kitten ssh";
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
# Remove a directory and all files
rmd = "/bin/rm --recursive --force --verbose ";
# Fun aliases
pasjans = "ttysolitaire -p 10 --no-background-color";
fc = "fortune | cowsay";
# Network aliases
kssh-server = "kssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
ssh-server = "ssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
};
}

View File

@@ -6,4 +6,8 @@ _: {
# fastfetch
# '';
};
imports = [
./aliases.nix
./functions.nix
];
}

View File

@@ -0,0 +1,144 @@
_: {
programs.bash.bashrcExtra = ''
# Quick directory creation and navigation
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Extract various archive formats
extract() {
for archive in "$@"; do
if [ -f "$archive" ]; then
case "$archive" in
*.tar.bz2) tar xvjf "$archive" ;;
*.tar.gz) tar xvzf "$archive" ;;
*.bz2) bunzip2 "$archive" ;;
*.rar) unrar x "$archive" ;;
*.gz) gunzip "$archive" ;;
*.tar) tar xvf "$archive" ;;
*.tbz2) tar xvjf "$archive" ;;
*.tgz) tar xvzf "$archive" ;;
*.zip) unzip "$archive" ;;
*.Z) uncompress "$archive" ;;
*.7z) 7z x "$archive" ;;
*) echo "don't know how to extract '$archive'..." ;;
esac
else
echo "'$archive' is not a valid file!"
fi
done
}
# Find files quickly
ff() {
find . -name "*$1*" -type f
}
# Find directories quickly
fd() {
find . -name "*$1*" -type d
}
# IP address lookup
alias whatismyip="whatsmyip"
function whatsmyip () {
# Internal IP Lookup.
if command -v ip &> /dev/null; then
echo -n "Internal IP: "
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
else
echo -n "Internal IP: "
ifconfig wlan0 | grep "inet " | awk '{print $2}'
fi
# External IP Lookup
echo -n "External IP: "
curl -4 ifconfig.me
}
# Searches for text in all files in the current folder
ftext() {
# -i case-insensitive
# -I ignore binary files
# -H causes filename to be printed
# -r recursive search
# -n causes line number to be printed
# optional: -F treat search term as a literal, not a regular expression
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
grep -iIHrn --color=always "$1" . | less -r
}
# Copy file with a progress bar
cpp() {
set -e
strace -q -ewrite cp -- "$1" "$2" 2>&1 |
awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf "%3d%% [", percent
for (i=0;i<=percent;i++)
printf "="
printf ">"
for (i=percent;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' total_size="$(stat -c '%s' "$1")" count=0
}
# Copy and go to the directory
cpg() {
if [ -d "$2" ]; then
cp "$1" "$2" && cd "$2"
else
cp "$1" "$2"
fi
}
# Move and go to the directory
mvg() {
if [ -d "$2" ]; then
mv "$1" "$2" && cd "$2"
else
mv "$1" "$2"
fi
}
# Create and go to the directory
mkdirg() {
mkdir -p "$1"
cd "$1"
}
# Goes up a specified number of directories (i.e. up 4)
up() {
local d=""
limit=$1
for ((i = 1; i <= limit; i++)); do
d=$d/..
done
d=$(echo $d | sed 's/^\///')
if [ -z "$d" ]; then
d=..
fi
cd $d
}
# Automatically do an ls after each cd, z, or zoxide
cd ()
{
if [ -n "$1" ]; then
builtin cd "$@" && ls
else
builtin cd ~ && ls
fi
}
# Returns the last 2 fields of the working directory
pwdtail() {
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
}
'';
}

View File

@@ -2,17 +2,12 @@
pkgs,
lib,
...
}:
{
}: {
programs.bat = {
enable = true;
config = {
pager = "less -FR";
# other styles available and cane be combined
# style = "numbers,changes,headers,rule,grid";
style = "full";
# Bat has other thems as well
# Dracula,ansi,Catppuccin,base16,base16-256,GitHub,Nord,etc
theme = lib.mkForce "base16";
};
extraPackages = with pkgs.bat-extras; [

View File

@@ -1,6 +1,12 @@
{ pkgs, ... }:
{
programs.btop = {
pkgs,
lib,
config,
...
}: {
options.btop.enable = lib.mkEnableOption "Btop";
config.programs.btop = lib.mkIf config.btop.enable {
enable = true;
package = pkgs.btop.override {
rocmSupport = true;

View File

@@ -1,42 +1,17 @@
_: {
programs.cava = {
enable = false;
{
lib,
config,
...
}: {
options.cava.enable = lib.mkEnableOption "Cava";
config.programs.cava = lib.mkIf config.cava.enable {
enable = true;
settings = {
general = {
bar_spacing = 1;
bar_width = 2;
frame_rate = 60;
};
color = {
#gradient = 1;
#gradient_color_1 = "'#011f30'";
#gradient_color_2 = "'#09465b'";
#gradient_color_3 = "'#045a93'";
#gradient_color_4 = "'#00aa00'";
#gradient_color_5 = "'#ffff00'";
#gradient_color_6 = "'#cc8033'";
#gradient_color_7 = "'#aa0000'";
#gradient_color_8 = "'#ff00ff'";
# Old config
#gradient = 1;
#gradient_color_1 = "'#8bd5ca'";
#gradient_color_2 = "'#91d7e3'";
#gradient_color_3 = "'#7dc4e4'";
#gradient_color_4 = "'#8aadf4'";
#gradient_color_5 = "'#c6a0f6'";
#gradient_color_6 = "'#f5bde6'";
#gradient_color_7 = "'#ee99a0'";
#gradient_color_8 = "'#ed8796'";
# Dracula
gradient = 1;
gradient_color_1 = "'#8BE9FD'";
gradient_color_2 = "'#9AEDFE'";
gradient_color_3 = "'#CAA9FA'";
gradient_color_4 = "'#BD93F9'";
gradient_color_5 = "'#FF92D0'";
gradient_color_6 = "'#FF79C6'";
gradient_color_7 = "'#FF6E67'";
gradient_color_8 = "'#FF5555'";
frame_rate = 144;
};
};
};

View File

@@ -1,35 +0,0 @@
{ pkgs, ... }:
{
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;
# commandLineArgs = [ ];
dictionaries = with pkgs; [
hunspellDictsChromium.en_US
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
];
extensions = [
{
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
}
{
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
}
{
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
}
{
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
}
{
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
}
{
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
}
{
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
}
];
};
}

View File

@@ -0,0 +1,22 @@
{
pkgs,
lib,
config,
...
}: {
options.ungoogled-chromium.enable = lib.mkEnableOption "Ungoogled Chromium";
config.programs.chromium = lib.mkIf config.ungoogled-chromium.enable {
enable = true;
package = pkgs.ungoogled-chromium;
# commandLineArgs = [ ];
dictionaries = with pkgs; [
hunspellDictsChromium.en_US
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
];
};
imports = [
./extensions.nix
];
}

View File

@@ -0,0 +1,25 @@
_: {
programs.chromium.extensions = [
{
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
}
{
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
}
{
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
}
{
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
}
{
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
}
{
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
}
{
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
}
];
}

View File

@@ -1,31 +1,31 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) waybarChoice;
in
{
in {
imports = [
./bash
./chromium
./fastfetch
./hyprland
./kitty
./librewolf
./rofi
./scripts
./swaync
./vscodium
waybarChoice
./wlogout
./xdg
./zed
./anki.nix
./bash.nix
./bash-aliases.nix
./bash-functions.nix
./bat.nix
./btop.nix
./cava.nix
./chromium.nix
./emoji.nix
./eza.nix
./fzf.nix
./git.nix
./gtk.nix
./kdeConnect.nix
./kitty.nix
./librewolf.nix
./lutris.nix
./nextcloud.nix
./obs-studio.nix
@@ -35,13 +35,9 @@ in
./starship.nix
./stylix.nix
./swappy.nix
./swaync.nix
./tealdeer.nix
./vesktop.nix
./virtmanager.nix
./xdg.nix
./zoxide.nix
./vscode.nix
./zed.nix
];
}

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
home.file.".config/.emoji".text = ''
😀 grinning face face smile happy joy :D grin
😃 grinning face with big eyes face happy joy haha :D :) smile funny

View File

@@ -1,184 +1,17 @@
{
programs.fastfetch = {
pkgs,
lib,
config,
...
}: {
options.fastfetch.enable = lib.mkEnableOption "FastFetch";
config.programs.fastfetch = lib.mkIf config.fastfetch.enable {
enable = true;
settings = {
display = {
color = {
keys = "35";
output = "90";
};
separator = " ";
package = pkgs.fastfetch;
};
logo = {
source = ./garandos.png;
type = "kitty-direct";
height = 15;
width = 30;
padding = {
top = 3;
left = 3;
};
};
modules = [
"break"
{
type = "custom";
format = "Hardware";
}
{
type = "host";
format = "{5} {1} Type {2}";
key = " PC";
keyColor = "33";
}
{
type = "cpu";
format = "{1} ({3}) @ {7} GHz";
key = " ";
keyColor = "33";
}
{
type = "gpu";
format = "{1} {2} @ {12} GHz";
key = " ";
keyColor = "33";
}
{
type = "memory";
key = " 󰑭 ";
keyColor = "33";
}
{
type = "swap";
key = " ";
keyColor = "33";
}
{
type = "disk";
key = " 󰋊 ";
keyColor = "33";
}
{
type = "monitor";
key = " ";
keyColor = "33";
}
{
type = "custom";
format = "";
}
"break"
{
type = "custom";
format = "Software";
}
{
type = "os";
key = " OS";
keyColor = "31";
}
{
type = "command";
key = " ";
keyColor = "31";
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
}
{
type = "kernel";
key = " ";
keyColor = "31";
}
{
type = "packages";
key = " 󰏖 ";
keyColor = "31";
}
{
type = "shell";
key = " ";
keyColor = "31";
}
{
type = "wm";
key = " WM";
keyColor = "32";
}
{
type = "wmtheme";
key = " 󰉼 ";
keyColor = "32";
}
{
type = "icons";
key = " 󰀻 ";
keyColor = "32";
}
{
type = "cursor";
key = " ";
keyColor = "32";
}
{
type = "terminal";
key = " ";
keyColor = "32";
}
{
type = "terminalfont";
key = " ";
keyColor = "32";
}
{
type = "custom";
format = "";
}
"break"
{
type = "custom";
format = "Age / Uptime";
}
{
type = "command";
key = " IN";
text =
#bash
''
birth_install=$(stat -c %W /)
if [ "$birth_install" -gt 0 ]; then
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
else
echo "Installation date unknown"
fi
'';
}
{
type = "command";
key = " ";
text =
#bash
''
birth_install=$(stat -c %W /)
current=$(date +%s)
delta=$((current - birth_install))
delta_days=$((delta / 86400))
echo $delta_days days
'';
}
{
type = "uptime";
key = " ";
}
{
type = "custom";
format = "";
}
"break"
imports = [
./settings
];
};
};
}

View File

@@ -0,0 +1,7 @@
_: {
imports = [
./display.nix
./logo.nix
./modules.nix
];
}

View File

@@ -0,0 +1,9 @@
_: {
programs.fastfetch.settings.display = {
color = {
keys = "35";
output = "90";
};
separator = " ";
};
}

View File

@@ -0,0 +1,12 @@
_: {
programs.fastfetch.settings.logo = {
source = ../garandos.png;
type = "kitty-direct";
height = 15;
width = 30;
padding = {
top = 3;
left = 3;
};
};
}

View File

@@ -0,0 +1,159 @@
_: {
programs.fastfetch.settings.modules = [
"break"
{
type = "custom";
format = "Hardware";
}
{
type = "host";
format = "{5} {1} Type {2}";
key = " PC";
keyColor = "33";
}
{
type = "cpu";
format = "{1} ({3}) @ {7} GHz";
key = " ";
keyColor = "33";
}
{
type = "gpu";
format = "{1} {2} @ {12} GHz";
key = " ";
keyColor = "33";
}
{
type = "memory";
key = " 󰑭 ";
keyColor = "33";
}
{
type = "swap";
key = " ";
keyColor = "33";
}
{
type = "disk";
key = " 󰋊 ";
keyColor = "33";
}
{
type = "monitor";
key = " ";
keyColor = "33";
}
{
type = "custom";
format = "";
}
"break"
{
type = "custom";
format = "Software";
}
{
type = "os";
key = " OS";
keyColor = "31";
}
{
type = "command";
key = " ";
keyColor = "31";
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
}
{
type = "kernel";
key = " ";
keyColor = "31";
}
{
type = "packages";
key = " 󰏖 ";
keyColor = "31";
}
{
type = "shell";
key = " ";
keyColor = "31";
}
{
type = "wm";
key = " WM";
keyColor = "32";
}
{
type = "wmtheme";
key = " 󰉼 ";
keyColor = "32";
}
{
type = "icons";
key = " 󰀻 ";
keyColor = "32";
}
{
type = "cursor";
key = " ";
keyColor = "32";
}
{
type = "terminal";
key = " ";
keyColor = "32";
}
{
type = "terminalfont";
key = " ";
keyColor = "32";
}
{
type = "custom";
format = "";
}
"break"
{
type = "custom";
format = "Age / Uptime";
}
{
type = "command";
key = " IN";
text =
#bash
''
birth_install=$(stat -c %W /)
if [ "$birth_install" -gt 0 ]; then
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
else
echo "Installation date unknown"
fi
'';
}
{
type = "command";
key = " ";
text =
#bash
''
birth_install=$(stat -c %W /)
current=$(date +%s)
delta=$((current - birth_install))
delta_days=$((delta / 86400))
echo $delta_days days
'';
}
{
type = "uptime";
key = " ";
}
{
type = "custom";
format = "";
}
"break"
];
}

View File

@@ -3,13 +3,11 @@
config,
lib,
...
}:
let
}: let
accent = "#" + config.lib.stylix.colors.base0D;
foreground = "#" + config.lib.stylix.colors.base05;
muted = "#" + config.lib.stylix.colors.base03;
in
{
in {
programs.fzf = {
enable = true;
enableBashIntegration = true;

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
in
{
in {
programs.git = {
enable = true;
settings = {

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
gtk = {
iconTheme = {
name = "Papirus-Dark";

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
wayland.windowManager.hyprland.settings = {
animations = {
enabled = true;

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
wayland.windowManager.hyprland.settings = {
# name "Dynamic"
# credit https://github.com/mylinuxforwork/dotfiles

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
wayland.windowManager.hyprland.settings = {
# Name: END-4
# Credit: END-4 project https://github.com/end-4/dots-hyprland

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
wayland.windowManager.hyprland.settings = {
# name "moving"
# credit https://github.com/mylinuxforwork/dotfiles

View File

@@ -1,23 +1,30 @@
{ host, username, ... }:
let
{
host,
username,
...
}: let
inherit (import ../../../hosts/${host}/variables.nix) browser terminal;
desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
in
{
in {
wayland.windowManager.hyprland.settings = {
bind = [
# =============================================================================
# APLIKACJE - GŁÓWNE
# =============================================================================
"$modifier, A, exec, anki"
"$modifier, B, exec, bitwarden"
"$modifier, C, exec, chromium"
"$modifier, D, exec, vesktop"
"$modifier, G, exec, affinity-v3"
"$modifier, I, exec, iotas"
"$modifier, L, exec, logseq"
"$modifier, M, exec, plexamp"
"$modifier, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"
"$modifier, O, exec, obs"
"$modifier, Return, exec, ${terminal}"
"$modifier, S, exec, steam"
"$modifier, T, exec, thunar"
"$modifier, V, exec, codium"
"$modifier, W, exec, ${browser}"
"$modifier, Z, exec, zeditor"
@@ -40,11 +47,12 @@ in
"$modifier ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop"
"$modifier ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop"
"$modifier ALT, S, exec, slack"
"$modifier ALT, T, exec, gnome-text-editor"
"$modifier ALT, T, exec, gedit"
# =============================================================================
# APLIKACJE - Z CONTROL
# =============================================================================
"$modifier CONTROL, G, exec, gimp"
"$modifier CONTROL, M, exec, mattermost-desktop"
# =============================================================================
@@ -140,12 +148,6 @@ in
# =============================================================================
# NIEUŻYWANE KEYBINDY
# =============================================================================
# "$modifier, B, exec, bitwarden"
# "$modifier, G, exec, affinity-v3"
# "$modifier, L, exec, logseq"
# "$modifier, O, exec, obs"
# "$modifier, V, exec, codium"
# "$modifier SHIFT, N, exec, swaync-client -rs"
# "$modifier, P, pseudo,"
# "$modifier SHIFT,F, togglefloating,"

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../../hosts/${host}/variables.nix) animChoice;
in
{
in {
imports = [
animChoice
./binds.nix

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
wayland.windowManager.hyprland = {
settings = {
env = [

View File

@@ -1,10 +1,9 @@
{ host, ... }:
let
inherit (import ../../../hosts/${host}/variables.nix)
{host, ...}: let
inherit
(import ../../../hosts/${host}/variables.nix)
stylixImage
;
in
{
in {
wayland.windowManager.hyprland.settings = {
exec-once = [
"wl-paste --type text --watch cliphist store" # Saves text

View File

@@ -1,6 +1,4 @@
{ ... }:
{
_: {
services = {
hypridle = {
enable = true;

View File

@@ -3,11 +3,9 @@
config,
pkgs,
...
}:
let
}: let
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
in
{
in {
systemd.user.targets.hyprland-session.Unit.Wants = [
"xdg-desktop-autostart.target"
];
@@ -68,8 +66,7 @@ in
gaps_out = 8;
border_size = 2;
resize_on_border = true;
"col.active_border" =
"rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
"col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
"col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
};
@@ -154,9 +151,7 @@ in
extraConfig = "
monitor=,preferred,auto,auto
monitor=Virtual-1,1920x1080@60,auto,1
${
extraMonitorSettings
}
${extraMonitorSettings}
# To enable blur on waybar uncomment the line below
# Thanks to SchotjeChrisman
#layerrule = blur,waybar

View File

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

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
home.file.".config/hypr/pyprland.toml".text = ''
[pyprland]
plugins = [

View File

@@ -54,7 +54,7 @@ _: {
"float, tag:settings*"
"float, class:^([Ff]erdium)$"
"float, title:^(Picture-in-Picture)$"
"float, class:^(mpv|com.github.rafostar.Clapper)$"
"float, class:^(mpv)$"
"float, title:^(Authentication Required)$"
"float, title:^(War in Tunnels)$"
"float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)"
@@ -71,6 +71,7 @@ _: {
"size 70% 60%, initialTitle:(Add Folder to Workspace)"
"size 70% 70%, tag:settings*"
"size 60% 70%, class:^([Ff]erdium)$"
"size 70% 70%, class:^(mpv)$"
# Tile rules
"tile, class:^(affinity.exe)$"

View File

@@ -1,6 +1,12 @@
{ pkgs, ... }:
{
services.kdeconnect = {
pkgs,
lib,
config,
...
}: {
options.kdeconnect.enable = lib.mkEnableOption "KDE Connect";
config.services.kdeconnect = lib.mkIf config.kdeconnect.enable {
enable = true;
indicator = true;
package = pkgs.kdePackages.kdeconnect-kde;

View File

@@ -1,76 +0,0 @@
{ pkgs, ... }:
{
programs.kitty = {
enable = true;
package = pkgs.kitty;
settings = {
font_size = 12;
wheel_scroll_min_lines = 1;
window_padding_width = 4;
confirm_os_window_close = 0;
scrollback_lines = 10000;
enable_audio_bell = false;
mouse_hide_wait = 60;
cursor_trail = 1;
tab_fade = 1;
active_tab_font_style = "bold";
inactive_tab_font_style = "bold";
tab_bar_edge = "top";
tab_bar_margin_width = 0;
tab_bar_style = "powerline";
#tab_bar_style = "fade";
enabled_layouts = "splits";
};
extraConfig = ''
# Clipboard
map ctrl+shift+v paste_from_selection
map shift+insert paste_from_selection
# Scrolling
map ctrl+shift+up scroll_line_up
map ctrl+shift+down scroll_line_down
map ctrl+shift+k scroll_line_up
map ctrl+shift+j scroll_line_down
map ctrl+shift+page_up scroll_page_up
map ctrl+shift+page_down scroll_page_down
map ctrl+shift+home scroll_home
map ctrl+shift+end scroll_end
map ctrl+shift+h show_scrollback
# Window management
map alt+n new_window_with_cwd #open in current dir
#map alt+n new_os_window #opens term in $HOME
map alt+w close_window
map ctrl+shift+enter launch --location=hsplit
map ctrl+shift+s launch --location=vsplit
map ctrl+shift+] next_window
map ctrl+shift+[ previous_window
map ctrl+shift+f move_window_forward
map ctrl+shift+b move_window_backward
map ctrl+shift+` move_window_to_top
map ctrl+shift+1 first_window
map ctrl+shift+2 second_window
map ctrl+shift+3 third_window
map ctrl+shift+4 fourth_window
map ctrl+shift+5 fifth_window
map ctrl+shift+6 sixth_window
map ctrl+shift+7 seventh_window
map ctrl+shift+8 eighth_window
map ctrl+shift+9 ninth_window # Tab management
map ctrl+shift+0 tenth_window
map ctrl+shift+right next_tab
map ctrl+shift+left previous_tab
map ctrl+shift+t new_tab
map ctrl+shift+q close_tab
map ctrl+shift+l next_layout
map ctrl+shift+. move_tab_forward
map ctrl+shift+, move_tab_backward
# Miscellaneous
map ctrl+shift+up increase_font_size
map ctrl+shift+down decrease_font_size
map ctrl+shift+backspace restore_font_size
'';
};
}

View File

@@ -0,0 +1,11 @@
{pkgs, ...}: {
programs.kitty = {
enable = true;
package = pkgs.kitty;
};
imports = [
./extra-config.nix
./settings.nix
];
}

View File

@@ -0,0 +1,52 @@
_: {
programs.kitty.extraConfig = ''
# Clipboard
map ctrl+shift+v paste_from_selection
map shift+insert paste_from_selection
# Scrolling
map ctrl+shift+up scroll_line_up
map ctrl+shift+down scroll_line_down
map ctrl+shift+k scroll_line_up
map ctrl+shift+j scroll_line_down
map ctrl+shift+page_up scroll_page_up
map ctrl+shift+page_down scroll_page_down
map ctrl+shift+home scroll_home
map ctrl+shift+end scroll_end
map ctrl+shift+h show_scrollback
# Window management
map alt+n new_window_with_cwd #open in current dir
#map alt+n new_os_window #opens term in $HOME
map alt+w close_window
map ctrl+shift+enter launch --location=hsplit
map ctrl+shift+s launch --location=vsplit
map ctrl+shift+] next_window
map ctrl+shift+[ previous_window
map ctrl+shift+f move_window_forward
map ctrl+shift+b move_window_backward
map ctrl+shift+` move_window_to_top
map ctrl+shift+1 first_window
map ctrl+shift+2 second_window
map ctrl+shift+3 third_window
map ctrl+shift+4 fourth_window
map ctrl+shift+5 fifth_window
map ctrl+shift+6 sixth_window
map ctrl+shift+7 seventh_window
map ctrl+shift+8 eighth_window
map ctrl+shift+9 ninth_window # Tab management
map ctrl+shift+0 tenth_window
map ctrl+shift+right next_tab
map ctrl+shift+left previous_tab
map ctrl+shift+t new_tab
map ctrl+shift+q close_tab
map ctrl+shift+l next_layout
map ctrl+shift+. move_tab_forward
map ctrl+shift+, move_tab_backward
# Miscellaneous
map ctrl+shift+up increase_font_size
map ctrl+shift+down decrease_font_size
map ctrl+shift+backspace restore_font_size
'';
}

View File

@@ -0,0 +1,20 @@
_: {
programs.kitty.settings = {
font_size = 12;
wheel_scroll_min_lines = 1;
window_padding_width = 4;
confirm_os_window_close = 0;
scrollback_lines = 10000;
enable_audio_bell = false;
mouse_hide_wait = 60;
cursor_trail = 1;
tab_fade = 1;
active_tab_font_style = "bold";
inactive_tab_font_style = "bold";
tab_bar_edge = "top";
tab_bar_margin_width = 0;
tab_bar_style = "powerline";
#tab_bar_style = "fade";
enabled_layouts = "splits";
};
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,31 @@
{
pkgs,
lib,
config,
...
}: {
options.librewolf.enable = lib.mkEnableOption "LibreWolf";
config.programs.librewolf = lib.mkIf config.librewolf.enable {
enable = true;
package = pkgs.librewolf;
# nativeMessagingHosts = [pkgs.firefoxpwa];
languagePacks = [
"pl"
"en-US"
];
settings = {
# LibreWolf settings
"network.http.referer.XOriginPolicy" = 2;
"privacy.resistFingerprinting.letterboxing" = true;
"privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = true;
};
policies = {
# Policies (about:policies#documentation)
};
};
imports = [
./profiles
];
}

View File

@@ -0,0 +1,13 @@
{host, ...}: {
programs.librewolf.profiles."${host}" = {
id = 0;
isDefault = true;
name = "${host}";
};
imports = [
./extensions.nix
./search.nix
./settings.nix
];
}

Some files were not shown because too many files have changed in this diff Show More