Compare commits
3 Commits
2be712393f
...
d951277cec
| Author | SHA1 | Date | |
|---|---|---|---|
| d951277cec | |||
| 196db56791 | |||
| 900b565405 |
21
README.md
21
README.md
@@ -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
|
||||||
|
# Home‑modules (enable/disable home-scoped applications)
|
||||||
|
nano hosts/<your-system-hostname>/home-modules.nix
|
||||||
|
|
||||||
|
# System‑modules (enable/disable system‑wide 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 don’t 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
12
flake.lock
generated
@@ -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": {
|
||||||
|
|||||||
70
flake.nix
70
flake.nix
@@ -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;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./host-packages.nix
|
./host-packages.nix
|
||||||
|
./system-modules.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
66
hosts/Garand-Desktop/home-modules.nix
Normal file
66
hosts/Garand-Desktop/home-modules.nix
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
_: {
|
||||||
|
/*
|
||||||
|
Development editors and IDEs
|
||||||
|
*/
|
||||||
|
# VSCodium: a free and open-source "demicrosofted" VSCode
|
||||||
|
vscodium.enable = false;
|
||||||
|
# Zed Editor: a modern, high‑performance 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 community‑driven 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: spaced‑repetition flashcard program
|
||||||
|
anki.enable = true;
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# audacity
|
# audacity
|
||||||
];
|
];
|
||||||
|
|||||||
87
hosts/Garand-Desktop/system-modules.nix
Normal file
87
hosts/Garand-Desktop/system-modules.nix
Normal 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: privacy‑friendly 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;
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./host-packages.nix
|
./host-packages.nix
|
||||||
|
./system-modules.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
66
hosts/Garand-Laptop/home-modules.nix
Normal file
66
hosts/Garand-Laptop/home-modules.nix
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
_: {
|
||||||
|
/*
|
||||||
|
Development editors and IDEs
|
||||||
|
*/
|
||||||
|
# VSCodium: a free and open-source "demicrosofted" VSCode
|
||||||
|
vscodium.enable = false;
|
||||||
|
# Zed Editor: a modern, high‑performance 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 community‑driven 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: spaced‑repetition flashcard program
|
||||||
|
anki.enable = true;
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# audacity
|
# audacity
|
||||||
];
|
];
|
||||||
|
|||||||
87
hosts/Garand-Laptop/system-modules.nix
Normal file
87
hosts/Garand-Laptop/system-modules.nix
Normal 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: privacy‑friendly 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;
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./host-packages.nix
|
./host-packages.nix
|
||||||
|
./system-modules.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
66
hosts/default/home-modules.nix
Normal file
66
hosts/default/home-modules.nix
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
_: {
|
||||||
|
/*
|
||||||
|
Development editors and IDEs
|
||||||
|
*/
|
||||||
|
# VSCodium: a free and open-source "demicrosofted" VSCode
|
||||||
|
vscodium.enable = false;
|
||||||
|
# Zed Editor: a modern, high‑performance 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 community‑driven 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: spaced‑repetition flashcard program
|
||||||
|
anki.enable = true;
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# audacity
|
# audacity
|
||||||
];
|
];
|
||||||
|
|||||||
87
hosts/default/system-modules.nix
Normal file
87
hosts/default/system-modules.nix
Normal 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: privacy‑friendly 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;
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
programs.auto-cpufreq = {
|
programs.auto-cpufreq = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
14
modules/core/docker.nix
Normal 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"];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
fonts = {
|
fonts = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
dejavu_fonts
|
dejavu_fonts
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#vt = 3;
|
#vt = 3;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 = [
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
{
|
{username, ...}: {
|
||||||
username,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.nh = {
|
programs.nh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
clean = {
|
clean = {
|
||||||
|
|||||||
@@ -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
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
# Learning & practice
|
|
||||||
exercism
|
|
||||||
# AI coding
|
|
||||||
opencode
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
# inputs,
|
|
||||||
# system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
# inputs.prismlauncher-cracked.packages.${system}.default
|
|
||||||
space-cadet-pinball
|
|
||||||
tty-solitaire
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
];
|
|
||||||
}
|
|
||||||
47
modules/core/packages/packages.nix
Normal file
47
modules/core/packages/packages.nix
Normal 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);
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
# {
|
||||||
# pkgs
|
# pkgs
|
||||||
...
|
# ...
|
||||||
}:
|
# }
|
||||||
{
|
_: {
|
||||||
programs = {
|
programs = {
|
||||||
nano.enable = true;
|
nano.enable = true;
|
||||||
hyprland = {
|
hyprland = {
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
cmatrix
|
|
||||||
cowsay
|
|
||||||
sl
|
|
||||||
fortune
|
|
||||||
lolcat
|
|
||||||
eza
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
virt-viewer
|
|
||||||
# lazydocker
|
|
||||||
docker-client
|
|
||||||
# distrobox
|
|
||||||
# boxbuddy
|
|
||||||
# freerdp
|
|
||||||
# winboat
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
@@ -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;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{ username, ... }:
|
{username, ...}: {
|
||||||
{
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = false;
|
enable = false;
|
||||||
user = "${username}";
|
user = "${username}";
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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}"];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
@@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
{
|
{...}: {
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./amd-drivers.nix
|
./amd-drivers.nix
|
||||||
./intel-drivers.nix
|
./intel-drivers.nix
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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}'
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
128
modules/home/bash/aliases.nix
Normal file
128
modules/home/bash/aliases.nix
Normal 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";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -6,4 +6,8 @@ _: {
|
|||||||
# fastfetch
|
# fastfetch
|
||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
|
imports = [
|
||||||
|
./aliases.nix
|
||||||
|
./functions.nix
|
||||||
|
];
|
||||||
}
|
}
|
||||||
144
modules/home/bash/functions.nix
Normal file
144
modules/home/bash/functions.nix
Normal 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}'
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -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; [
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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'";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
22
modules/home/chromium/default.nix
Normal file
22
modules/home/chromium/default.nix
Normal 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
|
||||||
|
];
|
||||||
|
}
|
||||||
25
modules/home/chromium/extensions.nix
Normal file
25
modules/home/chromium/extensions.nix
Normal 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
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -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
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
7
modules/home/fastfetch/settings/default.nix
Normal file
7
modules/home/fastfetch/settings/default.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
_: {
|
||||||
|
imports = [
|
||||||
|
./display.nix
|
||||||
|
./logo.nix
|
||||||
|
./modules.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
9
modules/home/fastfetch/settings/display.nix
Normal file
9
modules/home/fastfetch/settings/display.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
_: {
|
||||||
|
programs.fastfetch.settings.display = {
|
||||||
|
color = {
|
||||||
|
keys = "35";
|
||||||
|
output = "90";
|
||||||
|
};
|
||||||
|
separator = " ➜ ";
|
||||||
|
};
|
||||||
|
}
|
||||||
12
modules/home/fastfetch/settings/logo.nix
Normal file
12
modules/home/fastfetch/settings/logo.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
_: {
|
||||||
|
programs.fastfetch.settings.logo = {
|
||||||
|
source = ../garandos.png;
|
||||||
|
type = "kitty-direct";
|
||||||
|
height = 15;
|
||||||
|
width = 30;
|
||||||
|
padding = {
|
||||||
|
top = 3;
|
||||||
|
left = 3;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
159
modules/home/fastfetch/settings/modules.nix
Normal file
159
modules/home/fastfetch/settings/modules.nix
Normal 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"
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
|
|
||||||
{
|
|
||||||
gtk = {
|
gtk = {
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = "Papirus-Dark";
|
name = "Papirus-Dark";
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
animations = {
|
animations = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
settings = {
|
settings = {
|
||||||
env = [
|
env = [
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
{ ... }:
|
_: {
|
||||||
|
|
||||||
{
|
|
||||||
services = {
|
services = {
|
||||||
hypridle = {
|
hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{ username, ... }:
|
{username, ...}: {
|
||||||
{
|
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
home.file.".config/hypr/pyprland.toml".text = ''
|
home.file.".config/hypr/pyprland.toml".text = ''
|
||||||
[pyprland]
|
[pyprland]
|
||||||
plugins = [
|
plugins = [
|
||||||
|
|||||||
@@ -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)$"
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
11
modules/home/kitty/default.nix
Normal file
11
modules/home/kitty/default.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.kitty;
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./extra-config.nix
|
||||||
|
./settings.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
52
modules/home/kitty/extra-config.nix
Normal file
52
modules/home/kitty/extra-config.nix
Normal 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
|
||||||
|
'';
|
||||||
|
}
|
||||||
20
modules/home/kitty/settings.nix
Normal file
20
modules/home/kitty/settings.nix
Normal 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
31
modules/home/librewolf/default.nix
Normal file
31
modules/home/librewolf/default.nix
Normal 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
|
||||||
|
];
|
||||||
|
}
|
||||||
13
modules/home/librewolf/profiles/default.nix
Normal file
13
modules/home/librewolf/profiles/default.nix
Normal 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
Reference in New Issue
Block a user