Add host modules and home options; update README
This commit is contained in:
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": {
|
||||||
|
|||||||
@@ -2,5 +2,6 @@ _: {
|
|||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./host-packages.nix
|
./host-packages.nix
|
||||||
|
./system-modules.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
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;
|
||||||
|
}
|
||||||
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;
|
||||||
|
}
|
||||||
@@ -2,5 +2,6 @@ _: {
|
|||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./host-packages.nix
|
./host-packages.nix
|
||||||
|
./system-modules.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
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;
|
||||||
|
}
|
||||||
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;
|
||||||
|
}
|
||||||
@@ -2,5 +2,6 @@ _: {
|
|||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./host-packages.nix
|
./host-packages.nix
|
||||||
|
./system-modules.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
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;
|
||||||
|
}
|
||||||
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;
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
./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
|
||||||
@@ -19,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,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.flatpak.enable = lib.mkEnableOption "Flatpak";
|
||||||
|
|
||||||
|
config.services.flatpak = lib.mkIf config.flatpak.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
update.onActivation = true;
|
||||||
packages = [
|
packages = [
|
||||||
# "org.vinegarhq.Sober"
|
# "org.vinegarhq.Sober"
|
||||||
"io.github.flattool.Warehouse"
|
"io.github.flattool.Warehouse"
|
||||||
"com.github.tchx84.Flatseal"
|
"com.github.tchx84.Flatseal"
|
||||||
];
|
];
|
||||||
update.onActivation = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +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,13 +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,8 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
# Learning & practice
|
|
||||||
exercism
|
|
||||||
# AI coding
|
|
||||||
opencode
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,5 +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,12 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
# inputs,
|
|
||||||
# system,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
# inputs.prismlauncher-cracked.packages.${system}.default
|
|
||||||
space-cadet-pinball
|
|
||||||
tty-solitaire
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,26 +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,10 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
cmatrix
|
|
||||||
cowsay
|
|
||||||
sl
|
|
||||||
fortune
|
|
||||||
lolcat
|
|
||||||
eza
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
virt-viewer
|
|
||||||
# lazydocker
|
|
||||||
docker-client
|
|
||||||
# distrobox
|
|
||||||
# boxbuddy
|
|
||||||
# freerdp
|
|
||||||
# winboat
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,20 +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 {
|
||||||
|
enable = true;
|
||||||
|
args = [
|
||||||
|
"--rt"
|
||||||
|
"--expose-wayland"
|
||||||
|
];
|
||||||
|
};
|
||||||
extraCompatPackages = [pkgs.proton-ge-bin];
|
extraCompatPackages = [pkgs.proton-ge-bin];
|
||||||
};
|
};
|
||||||
# gamescope = {
|
|
||||||
# enable = true;
|
gamescope = lib.mkIf config.gamescope.enable {
|
||||||
# capSysNice = true;
|
enable = true;
|
||||||
# args = [
|
capSysNice = true;
|
||||||
# "--rt"
|
args = [
|
||||||
# "--expose-wayland"
|
"--rt"
|
||||||
# ];
|
"--expose-wayland"
|
||||||
# };
|
];
|
||||||
gamemode.enable = true;
|
};
|
||||||
|
|
||||||
|
gamemode = lib.mkIf config.gamemode.enable {
|
||||||
|
enable = true;
|
||||||
|
enableRenice = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
programs = {
|
programs.thunar = {
|
||||||
thunar = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs.xfce; [
|
plugins = with pkgs.xfce; [
|
||||||
thunar-archive-plugin
|
thunar-archive-plugin
|
||||||
thunar-volman
|
thunar-volman
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ 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}";
|
||||||
@@ -32,8 +32,9 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
users.mutableUsers = true;
|
users = {
|
||||||
users.users.${username} = {
|
mutableUsers = true;
|
||||||
|
users.${username} = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "${gitUsername}";
|
description = "${gitUsername}";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
@@ -49,6 +50,8 @@ in {
|
|||||||
];
|
];
|
||||||
shell = pkgs.bash;
|
shell = pkgs.bash;
|
||||||
ignoreShellProgramCheck = true;
|
ignoreShellProgramCheck = true;
|
||||||
|
linger = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
nix.settings.allowed-users = ["${username}"];
|
nix.settings.allowed-users = ["${username}"];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +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;
|
|
||||||
}
|
|
||||||
@@ -7,5 +7,6 @@
|
|||||||
xdg-desktop-portal-gtk
|
xdg-desktop-portal-gtk
|
||||||
];
|
];
|
||||||
configPackages = [pkgs.hyprland];
|
configPackages = [pkgs.hyprland];
|
||||||
|
xdgOpenUsePortal = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
username,
|
username,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.anki = {
|
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,5 +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,6 +1,12 @@
|
|||||||
_: {
|
{
|
||||||
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;
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
programs.chromium = {
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.ungoogled-chromium.enable = lib.mkEnableOption "Ungoogled Chromium";
|
||||||
|
|
||||||
|
config.programs.chromium = lib.mkIf config.ungoogled-chromium.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.ungoogled-chromium;
|
package = pkgs.ungoogled-chromium;
|
||||||
# commandLineArgs = [ ];
|
# commandLineArgs = [ ];
|
||||||
|
|||||||
@@ -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 = {
|
imports = [
|
||||||
source = ./garandos.png;
|
./settings
|
||||||
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"
|
|
||||||
];
|
];
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
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"
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -12,14 +12,19 @@ in {
|
|||||||
# 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"
|
||||||
|
|
||||||
@@ -42,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"
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
@@ -142,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,"
|
||||||
|
|||||||
@@ -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,5 +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,6 +1,12 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
programs = {
|
pkgs,
|
||||||
librewolf = {
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.librewolf.enable = lib.mkEnableOption "LibreWolf";
|
||||||
|
|
||||||
|
config.programs.librewolf = lib.mkIf config.librewolf.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.librewolf;
|
package = pkgs.librewolf;
|
||||||
# nativeMessagingHosts = [pkgs.firefoxpwa];
|
# nativeMessagingHosts = [pkgs.firefoxpwa];
|
||||||
@@ -18,7 +24,6 @@
|
|||||||
# Policies (about:policies#documentation)
|
# Policies (about:policies#documentation)
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./profiles
|
./profiles
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
osConfig,
|
lib,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.lutris = {
|
options.lutris.enable = lib.mkEnableOption "Lutris";
|
||||||
enable = false;
|
|
||||||
|
config.programs.lutris = lib.mkIf config.lutris.enable {
|
||||||
|
enable = true;
|
||||||
package = pkgs.lutris;
|
package = pkgs.lutris;
|
||||||
protonPackages = [pkgs.proton-ge-bin];
|
protonPackages = [pkgs.proton-ge-bin];
|
||||||
winePackages = [pkgs.wineWowPackages.waylandFull];
|
winePackages = [pkgs.wineWowPackages.waylandFull];
|
||||||
defaultWinePackage = pkgs.wineWowPackages.waylandFull;
|
defaultWinePackage = pkgs.wineWowPackages.waylandFull;
|
||||||
steamPackage = osConfig.programs.steam.package;
|
steamPackage = pkgs.steam;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
services.nextcloud-client = {
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.nextcloud-client.enable = lib.mkEnableOption "Nextcloud Client";
|
||||||
|
|
||||||
|
config.services.nextcloud-client = lib.mkIf config.nextcloud-client.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
startInBackground = true;
|
startInBackground = true;
|
||||||
package = pkgs.nextcloud-client;
|
package = pkgs.nextcloud-client;
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
programs.obs-studio = {
|
pkgs,
|
||||||
enable = false;
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.obs-studio.enable = lib.mkEnableOption "OBS Studio";
|
||||||
|
|
||||||
|
config.programs.obs-studio = lib.mkIf config.obs-studio.enable {
|
||||||
|
enable = true;
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
wlrobs
|
wlrobs
|
||||||
obs-pipewire-audio-capture
|
obs-pipewire-audio-capture
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
programs.onlyoffice = {
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.onlyoffice.enable = lib.mkEnableOption "OnlyOffice";
|
||||||
|
|
||||||
|
config.programs.onlyoffice = lib.mkIf config.onlyoffice.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.onlyoffice-desktopeditors;
|
package = pkgs.onlyoffice-desktopeditors;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
programs.vesktop = {
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.vesktop.enable = lib.mkEnableOption "Vesktop";
|
||||||
|
|
||||||
|
config.programs.vesktop = lib.mkIf config.vesktop.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vesktop;
|
package = pkgs.vesktop;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,19 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
programs.vscode = {
|
pkgs,
|
||||||
enable = false;
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.vscodium.enable = lib.mkEnableOption "VsCodium";
|
||||||
|
|
||||||
|
config = {
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
programs.vscode = lib.mkIf config.vscodium.enable {
|
||||||
|
enable = true;
|
||||||
package = pkgs.vscodium;
|
package = pkgs.vscodium;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./profiles
|
./profiles
|
||||||
|
|||||||
@@ -1,9 +1,20 @@
|
|||||||
{pkgs, ...}: {
|
{
|
||||||
programs.zed-editor = {
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.zed-editor = {
|
||||||
|
enable = lib.mkEnableOption "Zed Editor";
|
||||||
|
remote-server = lib.mkEnableOption "Zed Editor Remote Server";
|
||||||
|
};
|
||||||
|
|
||||||
|
config.programs.zed-editor = lib.mkIf config.zed-editor.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.zed-editor;
|
package = pkgs.zed-editor;
|
||||||
installRemoteServer = true;
|
installRemoteServer = lib.mkIf config.zed-editor.remote-server true;
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./user-settings
|
./user-settings
|
||||||
./extensions.nix
|
./extensions.nix
|
||||||
|
|||||||
Reference in New Issue
Block a user