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. - `waybarChoice` - system top bar style.
- `animChoice` - system animation 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 ```bash
sudo cp /etc/nixos/hardware-configuration.nix hosts/<your-system-hostname>/hardware.nix 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 ```bash
NIX_CONFIG="experimental-features = nix-command flakes" NIX_CONFIG="experimental-features = nix-command flakes"
``` ```
### 7. Build system (provide your hostname) ### 8. Build system (provide your hostname)
```bash ```bash
sudo nixos-rebuild switch --flake .#your-system-hostname 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. - `pullos` - pull latest commits from my repository.
- `upd` - rebuild system. - `upd` - rebuild system.

12
flake.lock generated
View File

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

View File

@@ -51,43 +51,39 @@
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest"; nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
}; };
outputs = outputs = {
{ nixpkgs,
nixpkgs, nix-flatpak,
nix-flatpak, auto-cpufreq,
auto-cpufreq, ...
... } @ inputs: let
}@inputs: hostDirs = builtins.attrNames (builtins.readDir ./hosts);
let
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
mkHost = mkHost = hostName: let
hostName: inherit
let (import ./hosts/${hostName}/variables.nix)
inherit (import ./hosts/${hostName}/variables.nix) host
host username
username profile
profile system
system ;
;
in
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
inherit system;
};
modules = [
./profiles/${profile}
nix-flatpak.nixosModules.nix-flatpak
auto-cpufreq.nixosModules.default
];
};
in in
{ nixpkgs.lib.nixosSystem {
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost; inherit system;
}; specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
inherit system;
};
modules = [
./profiles/${profile}
nix-flatpak.nixosModules.nix-flatpak
auto-cpufreq.nixosModules.default
];
};
in {
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
};
} }

View File

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

View File

@@ -6,8 +6,7 @@
lib, lib,
modulesPath, modulesPath,
... ...
}: }: {
{
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
@@ -22,7 +21,7 @@
"usb_storage" "usb_storage"
"sd_mod" "sd_mod"
]; ];
kernelModules = [ "dm-snapshot" ]; kernelModules = ["dm-snapshot"];
luks.devices = { luks.devices = {
cryptroot = { cryptroot = {
device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065"; device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065";
@@ -30,8 +29,8 @@
}; };
}; };
}; };
kernelModules = [ "kvm-amd" ]; kernelModules = ["kvm-amd"];
extraModulePackages = [ ]; extraModulePackages = [];
}; };
fileSystems = { fileSystems = {

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; [ environment.systemPackages = with pkgs; [
# audacity # 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 = [ imports = [
./hardware.nix ./hardware.nix
./host-packages.nix ./host-packages.nix
./system-modules.nix
]; ];
} }

View File

@@ -6,9 +6,7 @@
lib, lib,
modulesPath, modulesPath,
... ...
}: }: {
{
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
@@ -21,14 +19,14 @@
"usb_storage" "usb_storage"
"sd_mod" "sd_mod"
]; ];
kernelModules = [ "dm-snapshot" ]; kernelModules = ["dm-snapshot"];
luks.devices.cryptroot = { luks.devices.cryptroot = {
device = "/dev/disk/by-uuid/6abc2228-823e-42b0-94c7-48fda757732c"; device = "/dev/disk/by-uuid/6abc2228-823e-42b0-94c7-48fda757732c";
preLVM = true; preLVM = true;
}; };
}; };
kernelModules = [ "kvm-amd" ]; kernelModules = ["kvm-amd"];
extraModulePackages = [ ]; extraModulePackages = [];
}; };
fileSystems = { fileSystems = {
@@ -51,7 +49,7 @@
}; };
swapDevices = [ swapDevices = [
{ device = "/dev/disk/by-uuid/5da7c845-7dd3-4882-93af-2d679cdb5e7a"; } {device = "/dev/disk/by-uuid/5da7c845-7dd3-4882-93af-2d679cdb5e7a";}
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

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; [ environment.systemPackages = with pkgs; [
# audacity # 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 = [ imports = [
./hardware.nix ./hardware.nix
./host-packages.nix ./host-packages.nix
./system-modules.nix
]; ];
} }

View File

@@ -4,12 +4,9 @@
{ {
config, config,
lib, lib,
pkgs,
modulesPath, modulesPath,
... ...
}: }: {
{
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
@@ -20,17 +17,16 @@
"nvme" "nvme"
"usbhid" "usbhid"
]; ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d"; device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d";
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device = boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device = "/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
"/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/C2A6-DF56"; 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; [ environment.systemPackages = with pkgs; [
# audacity # 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 = { programs.auto-cpufreq = {
enable = true; enable = true;
settings = { settings = {

View File

@@ -3,13 +3,11 @@
config, config,
lib, lib,
... ...
}: }: {
{
boot = { boot = {
kernelPackages = pkgs.linuxPackages_zen; kernelPackages = pkgs.linuxPackages_zen;
kernelModules = [ "v4l2loopback" ]; kernelModules = ["v4l2loopback"];
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; extraModulePackages = [config.boot.kernelPackages.v4l2loopback];
kernel.sysctl = { kernel.sysctl = {
"vm.max_map_count" = 2147483642; "vm.max_map_count" = 2147483642;
}; };

View File

@@ -1,12 +1,9 @@
{ {inputs, ...}: {
inputs,
...
}:
{
imports = [ imports = [
./packages ./packages
./auto-cpufreq.nix ./auto-cpufreq.nix
./boot.nix ./boot.nix
./docker.nix
./flatpak.nix ./flatpak.nix
./fonts.nix ./fonts.nix
./hardware.nix ./hardware.nix
@@ -23,7 +20,6 @@
./system.nix ./system.nix
./thunar.nix ./thunar.nix
./user.nix ./user.nix
./virtualisation.nix
./xdg.nix ./xdg.nix
./xserver.nix ./xserver.nix
inputs.stylix.nixosModules.stylix 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 = { lib,
flatpak = { config,
enable = true; ...
packages = [ }: {
# "org.vinegarhq.Sober" options.flatpak.enable = lib.mkEnableOption "Flatpak";
"io.github.flattool.Warehouse"
"com.github.tchx84.Flatseal" config.services.flatpak = lib.mkIf config.flatpak.enable {
]; enable = true;
update.onActivation = true; update.onActivation = true;
}; packages = [
# "org.vinegarhq.Sober"
"io.github.flattool.Warehouse"
"com.github.tchx84.Flatseal"
];
}; };
} }

View File

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

View File

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

View File

@@ -1,10 +1,9 @@
{ pkgs, ... }: {pkgs, ...}: {
{
hardware = { hardware = {
sane = { sane = {
enable = true; enable = true;
extraBackends = [ pkgs.sane-airscan ]; extraBackends = [pkgs.sane-airscan];
disabledDefaultBackends = [ "escl" ]; disabledDefaultBackends = ["escl"];
}; };
logitech.wireless = { logitech.wireless = {
enable = false; enable = false;

View File

@@ -2,11 +2,9 @@
host, host,
options, options,
... ...
}: }: let
let
inherit (import ../../hosts/${host}/variables.nix) hostId; inherit (import ../../hosts/${host}/variables.nix) hostId;
in in {
{
# Defensive assertion for hostname validity (clearer message at eval time) # Defensive assertion for hostname validity (clearer message at eval time)
assertions = [ assertions = [
{ {
@@ -19,7 +17,7 @@ in
hostName = "${host}"; hostName = "${host}";
hostId = hostId; hostId = hostId;
networkmanager.enable = true; networkmanager.enable = true;
timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ]; timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
firewall = { firewall = {
enable = true; enable = true;
allowedTCPPorts = [ allowedTCPPorts = [

View File

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

View File

@@ -1,8 +1,4 @@
{ {username, ...}: {
username,
...
}:
{
programs.nh = { programs.nh = {
enable = true; enable = true;
clean = { 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; nixpkgs.config.allowUnfree = true;
imports = [ imports = [
./essentials.nix
./packages.nix
./programs.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; [ environment.systemPackages = with pkgs; [
mpv
pavucontrol
playerctl
cmatrix
cowsay
sl
fortune
# File management # File management
trash-cli trash-cli
file-roller 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 # pkgs
... # ...
}: # }
{ _: {
programs = { programs = {
nano.enable = true; nano.enable = true;
hyprland = { 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, ... }: {host, ...}: let
let
inherit (import ../../hosts/${host}/variables.nix) printEnable; inherit (import ../../hosts/${host}/variables.nix) printEnable;
in in {
{
services = { services = {
printing = { printing = {
enable = printEnable; enable = printEnable;

View File

@@ -1,5 +1,4 @@
{ profile, ... }: {profile, ...}: {
{
# Services to start # Services to start
services = { services = {
libinput.enable = true; # Input Handling libinput.enable = true; # Input Handling
@@ -12,14 +11,17 @@
PasswordAuthentication = true; # Users can SSH using kb and password PasswordAuthentication = true; # Users can SSH using kb and password
KbdInteractiveAuthentication = true; KbdInteractiveAuthentication = true;
}; };
ports = [ 22 ]; ports = [22];
}; };
blueman.enable = true; # Bluetooth Support blueman.enable = true; # Bluetooth Support
tumbler.enable = true; # Image/video preview tumbler.enable = true; # Image/video preview
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
smartd = { smartd = {
enable = if profile == "vm" then false else true; enable =
if profile == "vm"
then false
else true;
autodetect = true; autodetect = true;
}; };
pipewire = { pipewire = {

View File

@@ -1,21 +1,43 @@
{ pkgs, ... }:
{ {
programs = { pkgs,
steam = { 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; enable = true;
package = pkgs.steam;
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
gamescopeSession.enable = true; gamescopeSession = lib.mkIf config.gamescope.enable {
extraCompatPackages = [ pkgs.proton-ge-bin ]; enable = true;
args = [
"--rt"
"--expose-wayland"
];
};
extraCompatPackages = [pkgs.proton-ge-bin];
};
gamescope = lib.mkIf config.gamescope.enable {
enable = true;
capSysNice = true;
args = [
"--rt"
"--expose-wayland"
];
};
gamemode = lib.mkIf config.gamemode.enable {
enable = true;
enableRenice = true;
}; };
# gamescope = {
# enable = true;
# capSysNice = true;
# args = [
# "--rt"
# "--expose-wayland"
# ];
# };
gamemode.enable = true;
}; };
} }

View File

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

View File

@@ -1,5 +1,4 @@
{ username, ... }: {username, ...}: {
{
services.syncthing = { services.syncthing = {
enable = false; enable = false;
user = "${username}"; 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 = { nix = {
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
settings = { settings = {
download-buffer-size = 200000000; download-buffer-size = 200000000;
auto-optimise-store = true; auto-optimise-store = true;
@@ -11,22 +14,24 @@ in
"nix-command" "nix-command"
"flakes" "flakes"
]; ];
substituters = [ "https://hyprland.cachix.org" ]; substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
}; };
}; };
time.timeZone = "Europe/Warsaw"; time.timeZone = "Europe/Warsaw";
i18n.defaultLocale = "pl_PL.UTF-8"; i18n = {
i18n.extraLocaleSettings = { defaultLocale = "pl_PL.UTF-8";
LC_ADDRESS = "pl_PL.UTF-8"; extraLocaleSettings = {
LC_IDENTIFICATION = "pl_PL.UTF-8"; LC_ADDRESS = "pl_PL.UTF-8";
LC_MEASUREMENT = "pl_PL.UTF-8"; LC_IDENTIFICATION = "pl_PL.UTF-8";
LC_MONETARY = "pl_PL.UTF-8"; LC_MEASUREMENT = "pl_PL.UTF-8";
LC_NAME = "pl_PL.UTF-8"; LC_MONETARY = "pl_PL.UTF-8";
LC_NUMERIC = "pl_PL.UTF-8"; LC_NAME = "pl_PL.UTF-8";
LC_PAPER = "pl_PL.UTF-8"; LC_NUMERIC = "pl_PL.UTF-8";
LC_TELEPHONE = "pl_PL.UTF-8"; LC_PAPER = "pl_PL.UTF-8";
LC_TIME = "pl_PL.UTF-8"; LC_TELEPHONE = "pl_PL.UTF-8";
LC_TIME = "pl_PL.UTF-8";
};
}; };
environment.variables = { environment.variables = {
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";

View File

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

View File

@@ -6,12 +6,10 @@
profile, profile,
system, system,
... ...
}: }: let
let
inherit (import ../../hosts/${host}/variables.nix) gitUsername; inherit (import ../../hosts/${host}/variables.nix) gitUsername;
in in {
{ imports = [inputs.home-manager.nixosModules.home-manager];
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = { home-manager = {
useUserPackages = true; useUserPackages = true;
useGlobalPkgs = false; useGlobalPkgs = false;
@@ -26,31 +24,34 @@ in
; ;
}; };
users.${username} = { users.${username} = {
imports = [ ./../home ]; imports = [./../home ../../hosts/${host}/home-modules.nix];
home = { home = {
username = "${username}"; username = "${username}";
homeDirectory = "/home/${username}"; homeDirectory = "/home/${username}";
stateVersion = "23.11"; stateVersion = "25.11";
}; };
}; };
}; };
users.mutableUsers = true; users = {
users.users.${username} = { mutableUsers = true;
isNormalUser = true; users.${username} = {
description = "${gitUsername}"; isNormalUser = true;
extraGroups = [ description = "${gitUsername}";
"adbusers" extraGroups = [
"docker" # access to docker as non-root "adbusers"
"libvirtd" # Virt manager/QEMU access "docker" # access to docker as non-root
"lp" "libvirtd" # Virt manager/QEMU access
"networkmanager" "lp"
"scanner" "networkmanager"
"wheel" # subdo access "scanner"
"vboxusers" # Virtual Box "wheel" # sudo access
"gamemode" "vboxusers" # Virtual Box
]; "gamemode"
shell = pkgs.bash; ];
ignoreShellProgramCheck = true; shell = pkgs.bash;
ignoreShellProgramCheck = true;
linger = true;
};
}; };
nix.settings.allowed-users = [ "${username}" ]; 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 = { xdg.portal = {
enable = true; enable = true;
wlr.enable = true; wlr.enable = true;
@@ -7,6 +6,7 @@
xdg-desktop-portal-hyprland xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
]; ];
configPackages = [ pkgs.hyprland ]; configPackages = [pkgs.hyprland];
xdgOpenUsePortal = true;
}; };
} }

View File

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

View File

@@ -4,18 +4,16 @@
config, config,
... ...
}: }:
with lib; with lib; let
let
cfg = config.drivers.amdgpu; cfg = config.drivers.amdgpu;
in in {
{
options.drivers.amdgpu = { options.drivers.amdgpu = {
enable = mkEnableOption "Enable AMD Drivers"; enable = mkEnableOption "Enable AMD Drivers";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.tmpfiles.rules = [ "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" ]; systemd.tmpfiles.rules = ["L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"];
services.xserver.videoDrivers = [ "amdgpu" ]; services.xserver.videoDrivers = ["amdgpu"];
environment.systemPackages = with pkgs; [ rocmPackages.rocm-smi ]; environment.systemPackages = with pkgs; [rocmPackages.rocm-smi];
}; };
} }

View File

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

View File

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

View File

@@ -4,14 +4,12 @@
config, config,
... ...
}: }:
with lib; with lib; let
let
cfg = config.local.hardware-clock; cfg = config.local.hardware-clock;
in in {
{
options.local.hardware-clock = { options.local.hardware-clock = {
enable = mkEnableOption "Change Hardware Clock To Local Time"; enable = mkEnableOption "Change Hardware Clock To Local Time";
}; };
config = mkIf cfg.enable { time.hardwareClockInLocalTime = true; }; config = mkIf cfg.enable {time.hardwareClockInLocalTime = true;};
} }

View File

@@ -4,18 +4,16 @@
pkgs, pkgs,
... ...
}: }:
with lib; with lib; let
let
cfg = config.drivers.nvidia; cfg = config.drivers.nvidia;
in in {
{
options.drivers.nvidia = { options.drivers.nvidia = {
enable = mkEnableOption "Enable Nvidia Drivers"; enable = mkEnableOption "Enable Nvidia Drivers";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = ["nvidia"];
environment.systemPackages = with pkgs; [ nvidia-docker ]; environment.systemPackages = with pkgs; [nvidia-docker];
hardware = { hardware = {
nvidia-container-toolkit.enable = true; nvidia-container-toolkit.enable = true;
nvidia = { nvidia = {
@@ -43,7 +41,6 @@ in
}; };
}; };
} }
# Making nvidia docker toolkit work: # Making nvidia docker toolkit work:
# #
# sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml # sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
@@ -59,3 +56,4 @@ in
# EOF # EOF
# #
# docker run --device nvidia.com/gpu=all # docker run --device nvidia.com/gpu=all

View File

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

View File

@@ -4,11 +4,9 @@
config, config,
... ...
}: }:
with lib; with lib; let
let
cfg = config.vm.guest-services; cfg = config.vm.guest-services;
in in {
{
options.vm.guest-services = { options.vm.guest-services = {
enable = mkEnableOption "Enable Virtual Machine 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; enable = true;
package = pkgs.anki; package = pkgs.anki;
language = "pl_PL"; 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 # 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, pkgs,
lib, lib,
... ...
}: }: {
{
programs.bat = { programs.bat = {
enable = true; enable = true;
config = { config = {
pager = "less -FR"; pager = "less -FR";
# other styles available and cane be combined
# style = "numbers,changes,headers,rule,grid";
style = "full"; style = "full";
# Bat has other thems as well
# Dracula,ansi,Catppuccin,base16,base16-256,GitHub,Nord,etc
theme = lib.mkForce "base16"; theme = lib.mkForce "base16";
}; };
extraPackages = with pkgs.bat-extras; [ 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; enable = true;
package = pkgs.btop.override { package = pkgs.btop.override {
rocmSupport = true; rocmSupport = true;

View File

@@ -1,42 +1,17 @@
_: { {
programs.cava = { lib,
enable = false; config,
...
}: {
options.cava.enable = lib.mkEnableOption "Cava";
config.programs.cava = lib.mkIf config.cava.enable {
enable = true;
settings = { settings = {
general = { general = {
bar_spacing = 1; bar_spacing = 1;
bar_width = 2; bar_width = 2;
frame_rate = 60; frame_rate = 144;
};
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'";
}; };
}; };
}; };

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

View File

@@ -1,5 +1,4 @@
{ ... }: _: {
{
home.file.".config/.emoji".text = '' home.file.".config/.emoji".text = ''
😀 grinning face face smile happy joy :D grin 😀 grinning face face smile happy joy :D grin
😃 grinning face with big eyes face happy joy haha :D :) smile funny 😃 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; enable = true;
package = pkgs.fastfetch;
settings = {
display = {
color = {
keys = "35";
output = "90";
};
separator = " ";
};
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, config,
lib, lib,
... ...
}: }: let
let
accent = "#" + config.lib.stylix.colors.base0D; accent = "#" + config.lib.stylix.colors.base0D;
foreground = "#" + config.lib.stylix.colors.base05; foreground = "#" + config.lib.stylix.colors.base05;
muted = "#" + config.lib.stylix.colors.base03; muted = "#" + config.lib.stylix.colors.base03;
in in {
{
programs.fzf = { programs.fzf = {
enable = true; enable = true;
enableBashIntegration = true; enableBashIntegration = true;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -54,7 +54,7 @@ _: {
"float, tag:settings*" "float, tag:settings*"
"float, class:^([Ff]erdium)$" "float, class:^([Ff]erdium)$"
"float, title:^(Picture-in-Picture)$" "float, title:^(Picture-in-Picture)$"
"float, class:^(mpv|com.github.rafostar.Clapper)$" "float, class:^(mpv)$"
"float, title:^(Authentication Required)$" "float, title:^(Authentication Required)$"
"float, title:^(War in Tunnels)$" "float, title:^(War in Tunnels)$"
"float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)" "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% 60%, initialTitle:(Add Folder to Workspace)"
"size 70% 70%, tag:settings*" "size 70% 70%, tag:settings*"
"size 60% 70%, class:^([Ff]erdium)$" "size 60% 70%, class:^([Ff]erdium)$"
"size 70% 70%, class:^(mpv)$"
# Tile rules # Tile rules
"tile, class:^(affinity.exe)$" "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; enable = true;
indicator = true; indicator = true;
package = pkgs.kdePackages.kdeconnect-kde; 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