init
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
155
README.md
Normal file
@@ -0,0 +1,155 @@
|
||||
> [!CAUTION]
|
||||
> ### ⚠️ Wichtige Hinweise zur Bootfähigkeit
|
||||
>
|
||||
>
|
||||
> **zwingend manuell anpassen**
|
||||
> * **Hardware-Konfiguration.nix**: Die Datei `hardware-configuration.nix` muss für jedes Gerät individuell generiert werden. (Generierte vom System nehmen)
|
||||
> * **Hibernation.nix**: Die Werte für `boot.resumeDevice` (UUID) und `resume_offset` in der `modules/hibernation.nix` sind physikalisch an die aktuelle Festplatte gebunden. (erstmal auskommentieren in configuration.nix dann anpassen)
|
||||
> * **nvidia.nix**: Muss angepasst je nach GPU
|
||||
> * **boot.nix**: nutzt drm nvidia treiber muss ausgetauscht werden initdr anpassen ob amd oder nvidia!
|
||||
> * **Virtualisierung.nix**: Die USB-IDs für die Kinesis-Tastatur und Keychron-Maus in der `modules/virtualization.nix` funktionieren nur mit diesen spezifischen Geräten. (erstmal egal)
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
|
||||
# ███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗
|
||||
# ████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝
|
||||
# ██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗
|
||||
# ██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║
|
||||
# ██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║
|
||||
# ╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
|
||||
# ❄️ Nils' Modular NixOS Config
|
||||
|
||||
<p align="center">
|
||||
<img src="./cosmic_desktop.png" width="450" alt="Desktop View">
|
||||
<img src="./cosmic_terminal.png" width="450" alt="Terminal View">
|
||||
|
||||
<img src="./owl_desktop.png" width="450" alt="Desktop View">
|
||||
<img src="./owl_terminal.png" width="450" alt="Terminal View">
|
||||
</p>
|
||||
|
||||
|
||||
---
|
||||
## TODO
|
||||
|
||||
* [ ] Waybar reload Tray spawn beheben
|
||||
|
||||
|
||||
* [ ] swaync dynamisch reloading
|
||||
|
||||
|
||||
## Struktur
|
||||
|
||||
Die Konfiguration ist in logische Module unterteilt, um die Wartung und Übertragbarkeit zu erleichtern:
|
||||
|
||||
**`configuration.nix`**: Zentraler Einstiegspunkt für das System.
|
||||
|
||||
**`modules/`**: Systemweite Konfigurationen (Boot, NVIDIA, Virtualisierung, Hibernation).
|
||||
|
||||
**`home/`**: Benutzerspezifische Konfigurationen via Home-Manager (Hyprland, Waybar, App-Configs).
|
||||
|
||||
**`icons-wallpapers/`**: Icons, Wallpapers und System-Assets.
|
||||
|
||||
**`templates/`**: Vorlagen für die dynamische Farberzeugung mit Matugen.
|
||||
|
||||
---
|
||||
|
||||
## Installation & Setup
|
||||
|
||||
### 1. Repository klonen
|
||||
|
||||
```bash
|
||||
git clone https://github.com/DEIN_USERNAME/nixos-config.git ~/nixos
|
||||
cd ~/nixos
|
||||
|
||||
```
|
||||
|
||||
### 2. Symlink erstellen
|
||||
|
||||
NixOS erwartet seine Konfiguration standardmäßig unter `/etc/nixos`. Wir verlinken unser lokales Verzeichnis dorthin:
|
||||
|
||||
```bash
|
||||
sudo ln -s /home/nils/nixos /etc/nixos
|
||||
|
||||
```
|
||||
|
||||
### 3. Konfiguration anwenden
|
||||
|
||||
Verwende für normale Änderungen `switch`. Wenn du jedoch **Kernel-Parameter** (wie für Hibernate) oder den **Bootloader** änderst, ist der `boot`-Befehl sicherer:
|
||||
|
||||
```bash
|
||||
# Empfohlen nach Änderungen an der hibernation.nix oder boot.nix:
|
||||
sudo nixos-rebuild boot --flake .#nixos
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Updates & Wartung
|
||||
|
||||
Um die externen Programme und das Basissystem (nixpkgs) auf den neuesten Stand zu bringen, müssen die Flake-Inputs aktualisiert werden:
|
||||
|
||||
1. **Inputs aktualisieren**:
|
||||
```bash
|
||||
nix flake update
|
||||
|
||||
```
|
||||
|
||||
|
||||
Dieser Befehl prüft alle Quellen in der `flake.nix` auf Aktualisierungen und schreibt die neuen Versionen in die `flake.lock`.
|
||||
|
||||
|
||||
2. **Änderung registrieren**:
|
||||
```bash
|
||||
git add flake.lock
|
||||
|
||||
```
|
||||
|
||||
|
||||
3. **System aktualisieren**:
|
||||
```bash
|
||||
sudo nixos-rebuild switch --flake .#nixos
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
Wenn du Änderungen vornimmst, folge immer diesem Ablauf:
|
||||
|
||||
1. **Dateien bearbeiten** (in `/home/nils/nixos`).
|
||||
2. **Änderungen registrieren**: `git add .` (Ohne diesen Schritt findet NixOS neue Dateien oder Änderungen in Flakes nicht!).
|
||||
3. **Anwenden**:
|
||||
* `sudo nixos-rebuild switch --flake .#nixos` (für sofortige Änderungen).
|
||||
* `sudo nixos-rebuild boot --flake .#nixos` (schreibt den Boot-Eintrag für den nächsten Neustart).
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
### Was wurde ergänzt?
|
||||
|
||||
* **Pfad-Klarheit**: Es wird explizit auf `/home/nils/nixos` hingewiesen.
|
||||
* **Git-Pflicht**: Der Hinweis auf `git init` und die Notwendigkeit von `git add` für Flakes ist jetzt prominenter.
|
||||
* **Boot-Befehl**: Die Unterscheidung zwischen `switch` und `boot` wurde hinzugefügt, da du für das Hibernation-Setup zwingend den `boot`-Parameter benötigst, um die Kernel-Parameter (`resume_offset`) im Bootloader zu registrieren.
|
||||
|
||||
Soll ich noch einen Abschnitt hinzufügen, wie man überprüft, ob der Symlink korrekt gesetzt wurde?
|
||||
|
||||
### 3. Hardware-Konfiguration
|
||||
|
||||
Die `hardware-configuration.nix` ist spezifisch für jedes Gerät. Sie wird automatisch generiert und sollte im Hauptverzeichnis bleiben.
|
||||
|
||||
* Die Datei wird beim ersten Setup automatisch eingebunden.
|
||||
|
||||
|
||||
* **Wichtig:** Falls du das System auf neuer Hardware aufsetzt, generiere sie mit `nixos-generate-config` neu.
|
||||
|
||||
### 4. Konfiguration anwenden
|
||||
|
||||
```bash
|
||||
sudo nixos-rebuild switch --flake .#nixos
|
||||
|
||||
```
|
||||
32
configuration.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./modules/boot.nix
|
||||
./modules/hibernation.nix
|
||||
./modules/virtualization.nix
|
||||
./modules/locale.nix
|
||||
./modules/nvidia.nix
|
||||
./modules/desktop.nix
|
||||
./modules/users.nix
|
||||
./modules/system-packages.nix
|
||||
];
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nix.settings = {
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
auto-optimise-store = true;
|
||||
};
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
services.xserver.enable = true;
|
||||
}
|
||||
BIN
cosmic_desktop.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
cosmic_hyprlock.png
Normal file
|
After Width: | Height: | Size: 2.7 MiB |
BIN
cosmic_terminal.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
cosmic_wlogout.png
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
140
flake.lock
generated
Normal file
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765980955,
|
||||
"narHash": "sha256-rB45jv4uwC90vM9UZ70plfvY/2Kdygs+zlQ07dGQFk4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "89c9508bbe9b40d36b3dc206c2483ef176f15173",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mac-style-plymouth": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756677116,
|
||||
"narHash": "sha256-bjtQvzupAFX5AYAIyBXSFgWhaG4nP4TvgKDoKyUhZ4U=",
|
||||
"owner": "SergioRibera",
|
||||
"repo": "s4rchiso-plymouth-theme",
|
||||
"rev": "2f782f4b68ce1c00cef3fde6970d7b4241bb97d4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SergioRibera",
|
||||
"repo": "s4rchiso-plymouth-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"matugen": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765981892,
|
||||
"narHash": "sha256-c7VKaNiBUkwGsTq398EQSM4K7skPacmOz8NeLj67M7s=",
|
||||
"owner": "InioX",
|
||||
"repo": "Matugen",
|
||||
"rev": "e405cd9de87510dd40c1328bcf06e0daf3d1a5bf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "InioX",
|
||||
"repo": "Matugen",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1765779637,
|
||||
"narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1306659b587dc277866c7b69eb97e5f07864d8c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"mac-style-plymouth": "mac-style-plymouth",
|
||||
"matugen": "matugen",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
34
flake.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
description = "nils NixOS Modular Config";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
matugen = {
|
||||
url = "github:InioX/Matugen";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
mac-style-plymouth = {
|
||||
url = "github:SergioRibera/s4rchiso-plymouth-theme";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs:
|
||||
let
|
||||
username = "nils";
|
||||
system = "x86_64-linux";
|
||||
in {
|
||||
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs username; };
|
||||
modules = [
|
||||
./configuration.nix
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
38
hardware-configuration.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/6a9e58be-37d9-4fee-8b67-81a78d80c016";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/1C0E-5877";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
21
home/alacritty.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general.import = [ "${config.home.homeDirectory}/.config/alacritty/colors.toml" ];
|
||||
|
||||
env.TERM = "xterm-256color";
|
||||
window = {
|
||||
opacity = 0.9;
|
||||
padding = { x = 10; y = 10; };
|
||||
};
|
||||
font.size = 12;
|
||||
|
||||
terminal.shell = {
|
||||
program = "${pkgs.zellij}/bin/zellij";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
48
home/helix.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
settings = {
|
||||
theme = "transparent";
|
||||
editor = {
|
||||
line-number = "relative";
|
||||
bufferline = "multiple";
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
statusline.left = ["mode" "spinner" "file-name"];
|
||||
};
|
||||
keys.normal = {
|
||||
X = "extend_line_above";
|
||||
};
|
||||
};
|
||||
themes = {
|
||||
transparent = {
|
||||
inherits = "base16_transparent";
|
||||
"ui.background" = { };
|
||||
|
||||
"ui.linenr" = { fg = "#666666"; };
|
||||
"ui.linenr.selected" = {
|
||||
fg = "#ffffff";
|
||||
modifiers = ["bold"];
|
||||
};
|
||||
|
||||
"ui.cursor" = { bg = "#ffffff"; fg = "#000000"; };
|
||||
"ui.cursor.primary" = { bg = "#ffffff"; fg = "#000000"; };
|
||||
|
||||
"ui.selection" = {
|
||||
bg = "#585b70";
|
||||
fg = "#ffffff";
|
||||
};
|
||||
"ui.selection.primary" = {
|
||||
bg = "#b4befe";
|
||||
fg = "#11111b";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
39
home/home.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{ config, pkgs, inputs, lib, username, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./alacritty.nix
|
||||
./helix.nix
|
||||
./hypridle.nix
|
||||
./hyprland.nix
|
||||
./hyprlock.nix
|
||||
./swww.nix
|
||||
./mime-apps.nix
|
||||
./packages.nix
|
||||
./rofi.nix
|
||||
./shell.nix
|
||||
./swaync.nix
|
||||
./theming.nix
|
||||
./waybar.nix
|
||||
./waypaper.nix
|
||||
./wlogout.nix
|
||||
./swayosd.nix
|
||||
./yazi.nix
|
||||
./zathura.nix
|
||||
];
|
||||
|
||||
home.username = username;
|
||||
home.homeDirectory = "/home/${username}";
|
||||
home.stateVersion = "25.11";
|
||||
|
||||
home.sessionVariables = {
|
||||
XDG_MENU_PREFIX = "plasma-";
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_DESKTOP = "Hyprland";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
};
|
||||
}
|
||||
28
home/hypridle.nix
Normal file
@@ -0,0 +1,28 @@
|
||||
{ pkgs, ... }: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock";
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
};
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = 180;
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
# {
|
||||
# timeout = 330;
|
||||
# on-timeout = "hyprctl dispatch dpms off";
|
||||
# on-resume = "hyprctl dispatch dpms on";
|
||||
# }
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "systemctl suspend-then-hibernate";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
263
home/hyprland.nix
Normal file
@@ -0,0 +1,263 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
|
||||
settings = {
|
||||
source = "~/.config/hypr/colors.conf";
|
||||
|
||||
monitor = [
|
||||
"DP-6, 5120x1440@239.761, 0x1440, 1"
|
||||
"DP-5, 2560x1440@164.958, 1280x0, 1"
|
||||
];
|
||||
|
||||
workspace = [
|
||||
"1, monitor:DP-6, default:true"
|
||||
];
|
||||
|
||||
"$mainMod" = "SUPER";
|
||||
"$terminal" = "alacritty";
|
||||
"$filemanager" = "yazi";
|
||||
"$applauncher" = "rofi -show drun -no-custom";
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"overshot, 0.13, 0.99, 0.29, 1.1"
|
||||
"smooth, 0.25, 1, 0.5, 1"
|
||||
"snappy, 0.1, 1, 0.1, 1"
|
||||
];
|
||||
animation = [
|
||||
"windowsIn, 1, 4, overshot, slide"
|
||||
"windowsOut, 1, 5, default, popin 80%"
|
||||
"border, 1, 5, default"
|
||||
"workspacesIn, 1, 6, snappy, slide"
|
||||
"workspacesOut, 1, 6, snappy, slidefade 80%"
|
||||
"specialWorkspace, 1, 6, snappy, slidevert"
|
||||
];
|
||||
};
|
||||
|
||||
input = {
|
||||
kb_layout = "de";
|
||||
kb_options = "caps:escape";
|
||||
follow_mouse = 1;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
tap-to-click = true;
|
||||
clickfinger_behavior = true;
|
||||
};
|
||||
};
|
||||
|
||||
decoration = {
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 8;
|
||||
passes = 3;
|
||||
new_optimizations = true;
|
||||
ignore_opacity = true;
|
||||
};
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 3;
|
||||
gaps_out = 5;
|
||||
border_size = 3;
|
||||
"col.active_border" = "$primary";
|
||||
"col.inactive_border" = "$surface_variant";
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
bind = [
|
||||
"$mainMod, T, exec, $terminal"
|
||||
"$mainMod, E, exec, $terminal -e $filemanager" # Terminal -e wegen yazi
|
||||
"$mainMod, Q, killactive"
|
||||
"$mainMod, V, exec, copyq show"
|
||||
"$mainMod, D, exec, $applauncher"
|
||||
"$mainMod, Tab, exec, rofi -show window"
|
||||
"$mainMod SHIFT, D, exec, bash -c 'FILE=${config.home.homeDirectory}/nixos/templates/bookmarks.txt; sel=$(sed \"s/ :: .*//\" \"$FILE\" | rofi -dmenu -i -p \"Web: \"); [ -z \"$sel\" ] && exit; match=$(grep -F \"$sel :: \" \"$FILE\"); if [ -n \"$match\" ]; then url=\"\${match##* :: }\"; else url=\"$sel\"; fi; if [[ \"$url\" == http* ]] || ([[ \"$url\" != *\" \"* && \"$url\" == *\".\"* ]]); then firefox \"$url\"; else firefox \"https://duckduckgo.com/?q=$url\"; fi'"
|
||||
"$mainMod, Y, layoutmsg, togglesplit"
|
||||
"$mainMod, C, exec, hyprpicker -a"
|
||||
"$mainMod, N, exec, wayscriber -a"
|
||||
"$mainMod SHIFT, N, exec, wayscriber -a --freeze"
|
||||
|
||||
"$mainMod, G, exec, woomer"
|
||||
|
||||
"$mainMod, F, fullscreen"
|
||||
"$mainMod, Escape, exec, wlogout"
|
||||
"$mainMod, Z, togglefloating"
|
||||
|
||||
"$mainMod, H, movefocus, l"
|
||||
"$mainMod, J, movefocus, d"
|
||||
"$mainMod, K, movefocus, u"
|
||||
"$mainMod, L, movefocus, r"
|
||||
|
||||
"$mainMod CTRL, H, swapwindow, l"
|
||||
"$mainMod CTRL, J, swapwindow, d"
|
||||
"$mainMod CTRL, K, swapwindow, u"
|
||||
"$mainMod CTRL, L, swapwindow, r"
|
||||
|
||||
"$mainMod SHIFT, H, movewindow, l"
|
||||
"$mainMod SHIFT, J, movewindow, d"
|
||||
"$mainMod SHIFT, K, movewindow, u"
|
||||
"$mainMod SHIFT, L, movewindow, r"
|
||||
|
||||
"$mainMod, S, togglespecialworkspace, special"
|
||||
"$mainMod CTRL, S, movetoworkspace, special"
|
||||
"$mainMod SHIFT, S, movetoworkspace, e+0"
|
||||
|
||||
"$mainMod, left, focusmonitor, l"
|
||||
"$mainMod, right, focusmonitor, r"
|
||||
"$mainMod, up, focusmonitor, u"
|
||||
"$mainMod, down, focusmonitor, d"
|
||||
|
||||
"$mainMod SHIFT, left, movewindow, l"
|
||||
"$mainMod SHIFT, right, movewindow, r"
|
||||
"$mainMod SHIFT, up, movewindow, u"
|
||||
"$mainMod SHIFT, down, movewindow, d"
|
||||
|
||||
# Submap
|
||||
"$mainMod, R, submap, resize"
|
||||
|
||||
# Screenshot eines Bereichs (Selection) -> Speichern + Clipboard
|
||||
", Print, exec, bash -c 'mkdir -p ${config.home.homeDirectory}/Bilder/Bildschirmfotos && FILE=${config.home.homeDirectory}/Bilder/Bildschirmfotos/Screenshot_$(date +%Y%m%d_%H%M%S).png && grim -g \"$(slurp)\" $FILE && wl-copy < $FILE'"
|
||||
|
||||
# Screenshot des gesamten Bildschirms (Full Monitor) -> Speichern + Clipboard
|
||||
"SHIFT, Print, exec, bash -c 'mkdir -p ${config.home.homeDirectory}/Bilder/Bildschirmfotos && FILE=${config.home.homeDirectory}/Bilder/Bildschirmfotos/Fullscreen_$(date +%Y%m%d_%H%M%S).png && grim $FILE && wl-copy < $FILE'"
|
||||
] ++ (
|
||||
builtins.concatLists (builtins.genList (x:
|
||||
let ws = builtins.toString (x + 1);
|
||||
in [
|
||||
"$mainMod, ${ws}, workspace, ${ws}"
|
||||
"$mainMod CTRL, ${ws}, movetoworkspace, ${ws}"
|
||||
"$mainMod SHIFT, ${ws}, movetoworkspacesilent, ${ws}"
|
||||
]
|
||||
) 9)
|
||||
);
|
||||
|
||||
binde = [
|
||||
# Lautstärke Audio (Sink)
|
||||
", XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise"
|
||||
", XF86AudioLowerVolume, exec, swayosd-client --output-volume lower"
|
||||
|
||||
# Helligkeit
|
||||
", XF86MonBrightnessUp, exec, swayosd-client --brightness raise"
|
||||
", XF86MonBrightnessDown, exec, swayosd-client --brightness lower"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
# Stummschaltung (Toggle)
|
||||
", XF86AudioMute, exec, swayosd-client --output-volume mute-toggle"
|
||||
", XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle"
|
||||
|
||||
# Mediensteuerung
|
||||
", XF86AudioPlay, exec, swayosd-client --playerctl play-pause"
|
||||
", XF86AudioNext, exec, swayosd-client --playerctl next"
|
||||
", XF86AudioPrev, exec, swayosd-client --playerctl previous"
|
||||
];
|
||||
|
||||
bindr = [
|
||||
"CAPS, Caps_Lock, exec, swayosd-client --caps-lock"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"opacity 0.9 0.8, class:^(Alacritty)$"
|
||||
|
||||
"noanim, title:^(woomer)$"
|
||||
|
||||
"noanim, class:^(ueberzugpp_.*)$"
|
||||
"noinitialfocus, class:^(ueberzugpp_.*)$"
|
||||
"noblur, class:^(ueberzugpp_.*)$"
|
||||
"noshadow, class:^(ueberzugpp_.*)$"
|
||||
"noborder, class:^(ueberzugpp_.*)$"
|
||||
"float, class:^(ueberzugpp_.*)$"
|
||||
|
||||
"float, class:^(com.github.casperdcl.ripdrag)$"
|
||||
|
||||
"float, size 800 600, center, class:^(org.pulseaudio.pavucontrol)$"
|
||||
|
||||
"float, class:^(waypaper)$"
|
||||
"size 800 600, class:^(waypaper)$"
|
||||
"center, class:^(waypaper)$"
|
||||
|
||||
"float, class:^(com.github.hluk.copyq)$"
|
||||
"center, class:^(com.github.hluk.copyq)$"
|
||||
"size 800 600, class:^(com.github.hluk.copyq)$"
|
||||
"opacity 0.9 0.9, class:^(com.github.hluk.copyq)$"
|
||||
];
|
||||
|
||||
layerrule = [
|
||||
"blur, rofi"
|
||||
"ignorealpha 0.1, rofi"
|
||||
"blur, logout_dialog"
|
||||
"ignorealpha 0.1, logout_dialog"
|
||||
"ignorezero, logout_dialog"
|
||||
"blur, swaync-control-center"
|
||||
"blur, swaync-notification-window"
|
||||
"ignorealpha 0.5, swaync-control-center"
|
||||
"ignorealpha 0.5, swaync-notification-window"
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"sway-audio-idle-inhibit"
|
||||
"hyprctl dispatch focusmonitor DP-6"
|
||||
"waybar"
|
||||
"swaync"
|
||||
"pgrep copyq || copyq --start-server && copyq hide"
|
||||
"nextcloud --background"
|
||||
"${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Hyprland"
|
||||
"${pkgs.kdePackages.kwallet-pam}/libexec/pam_kwallet_init"
|
||||
"wayscriber --daemon"
|
||||
"waypaper --restore"
|
||||
];
|
||||
|
||||
device = [
|
||||
{
|
||||
name = "wacom-intuos-pro-m-pen";
|
||||
output = "DP-6";
|
||||
|
||||
active_area_size = "224 63";
|
||||
active_area_position = "0 38.5";
|
||||
|
||||
transform = 0;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# Extra Config
|
||||
extraConfig = ''
|
||||
submap = resize
|
||||
|
||||
binde = , l, resizeactive, 30 0
|
||||
binde = , h, resizeactive, -30 0
|
||||
binde = , j, resizeactive, 0 30
|
||||
binde = , k, resizeactive, 0 -30
|
||||
|
||||
binde = SHIFT, l, resizeactive, -30 0
|
||||
binde = SHIFT, h, resizeactive, 30 0
|
||||
binde = SHIFT, j, resizeactive, 0 -30
|
||||
binde = SHIFT, k, resizeactive, 0 30
|
||||
|
||||
binde = , plus, resizeactive, 20 20
|
||||
binde = , minus, resizeactive, -20 -20
|
||||
binde = SHIFT, plus, resizeactive, 0 20
|
||||
binde = SHIFT, minus, resizeactive, 0 -20
|
||||
|
||||
bind = , escape, submap, reset
|
||||
bind = , catchall, submap, reset
|
||||
submap = reset
|
||||
'';
|
||||
};
|
||||
}
|
||||
83
home/hyprlock.nix
Normal file
@@ -0,0 +1,83 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
source = "~/.config/hypr/hyprlock-colors.conf";
|
||||
|
||||
general = {
|
||||
immediate_render = true;
|
||||
hide_cursor = true;
|
||||
no_fade_in = false;
|
||||
};
|
||||
|
||||
background = [{
|
||||
monitor = "";
|
||||
path = "${config.home.homeDirectory}/nixos/wallpaper/current_wallpaper";
|
||||
color = "$background";
|
||||
|
||||
blur_passes = 3;
|
||||
blur_size = 8;
|
||||
noise = 0.0117;
|
||||
contrast = 0.8916;
|
||||
brightness = 0.8172;
|
||||
vibrancy = 0.1696;
|
||||
}];
|
||||
|
||||
input-field = [{
|
||||
monitor = "";
|
||||
size = "300, 30";
|
||||
outline_thickness = 0;
|
||||
dots_size = 0.25;
|
||||
dots_spacing = 0.55;
|
||||
dots_center = true;
|
||||
|
||||
outer_color = "rgba(0, 0, 0, 0)";
|
||||
inner_color = "rgba(0, 0, 0, 0.2)";
|
||||
font_color = "$foreground";
|
||||
|
||||
fade_on_empty = false;
|
||||
placeholder_text = "Enter Password";
|
||||
hide_input = false;
|
||||
|
||||
position = "0, -468";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}];
|
||||
|
||||
label = [
|
||||
{
|
||||
monitor = "";
|
||||
text = "$TIME";
|
||||
color = "$primary";
|
||||
font_size = 93;
|
||||
font_family = "JetBrainsMono Nerd Font Bold";
|
||||
position = "0, 310";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
{
|
||||
monitor = "";
|
||||
text = "cmd[update:1000] echo \"$(date +'%A, %B %d')\"";
|
||||
color = "$foreground";
|
||||
font_size = 20;
|
||||
font_family = "JetBrainsMono Nerd Font";
|
||||
position = "0, 405";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
{
|
||||
monitor = "";
|
||||
text = "Nils";
|
||||
color = "$foreground";
|
||||
font_size = 12;
|
||||
font_family = "JetBrainsMono Nerd Font Bold";
|
||||
position = "0, -407";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
65
home/mime-apps.nix
Normal file
@@ -0,0 +1,65 @@
|
||||
{ ... }: {
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# --- Text ---
|
||||
"text/plain" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"text/markdown" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"text/rust" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"application/json" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"application/x-yaml" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"application/x-docbook+xml" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"application/x-zerosize" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"text/x-cmake" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"text/x-objcsrc" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
"text/x-typst" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
|
||||
|
||||
# --- Audio ---
|
||||
"audio/mpeg" = [ "org.kde.elisa.desktop" ];
|
||||
"audio/x-wav" = [ "org.kde.elisa.desktop" ];
|
||||
"audio/x-vorbis+ogg" = [ "org.kde.elisa.desktop" ];
|
||||
"audio/flac" = [ "org.kde.elisa.desktop" ];
|
||||
"audio/mp4" = [ "org.kde.elisa.desktop" ];
|
||||
"audio/aac" = [ "org.kde.elisa.desktop" ];
|
||||
"audio/ogg" = [ "org.kde.elisa.desktop" ];
|
||||
|
||||
# --- Video ---
|
||||
"video/mp4" = [ "org.kde.haruna.desktop" ];
|
||||
"video/x-matroska" = [ "org.kde.haruna.desktop" ];
|
||||
"video/webm" = [ "org.kde.haruna.desktop" ];
|
||||
"video/quicktime" = [ "org.kde.haruna.desktop" ];
|
||||
"video/x-msvideo" = [ "org.kde.haruna.desktop" ];
|
||||
"video/mpeg" = [ "org.kde.haruna.desktop" ];
|
||||
"video/x-flv" = [ "org.kde.haruna.desktop" ];
|
||||
"application/x-matroska" = [ "org.kde.haruna.desktop" ];
|
||||
|
||||
# --- Dokumente & Archive ---
|
||||
"application/pdf" = [ "org.pwmt.zathura.desktop" "org.kde.okular.desktop" ];
|
||||
"application/zip" = [ "org.kde.ark.desktop" ];
|
||||
"application/x-tar" = [ "org.kde.ark.desktop" ];
|
||||
"application/x-compressed-tar" = [ "org.kde.ark.desktop" ];
|
||||
"image/svg+xml" = [ "org.kde.gwenview.desktop" "org.inkscape.Inkscape.desktop" ];
|
||||
"image/png" = [ "org.kde.gwenview.desktop" ];
|
||||
"image/jpeg" = [ "org.kde.gwenview.desktop" ];
|
||||
|
||||
# --- Ordner ---
|
||||
"inode/directory" = [ "org.kde.dolphin.desktop" ];
|
||||
|
||||
# --- Mail & Kalender ---
|
||||
"x-scheme-handler/mailto" = [ "thunderbird.desktop" ];
|
||||
"message/rfc822" = [ "thunderbird.desktop" ];
|
||||
"text/calendar" = [ "thunderbird.desktop" ];
|
||||
"x-scheme-handler/webcal" = [ "thunderbird.desktop" ];
|
||||
"x-scheme-handler/webcals" = [ "thunderbird.desktop" ];
|
||||
"application/x-extension-ics" = [ "thunderbird.desktop" ];
|
||||
|
||||
# --- Messenger ---
|
||||
"x-scheme-handler/sgnl" = [ "signal.desktop" ];
|
||||
"x-scheme-handler/signalcaptcha" = [ "signal.desktop" ];
|
||||
|
||||
# --- Terminal ---
|
||||
"x-scheme-handler/terminal" = [ "Alacritty.desktop" ];
|
||||
"application/x-terminal-emulator" = [ "Alacritty.desktop" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
101
home/packages.nix
Normal file
@@ -0,0 +1,101 @@
|
||||
{ pkgs, inputs, lib, ... }: {
|
||||
|
||||
xdg.configFile."copyq/copyq.conf".text = lib.mkAfter ''
|
||||
[Options]
|
||||
disable_tray=true
|
||||
minimize_on_close=true
|
||||
hide_main_window_startup=true
|
||||
close_on_unfocus=true
|
||||
'';
|
||||
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_theme = "matugen.theme";
|
||||
theme_background = false;
|
||||
preset = 0;
|
||||
vim_keys = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = [
|
||||
pkgs.kdePackages.plasma-browser-integration
|
||||
];
|
||||
};
|
||||
|
||||
services.wlsunset = {
|
||||
enable = true;
|
||||
latitude = "49.32";
|
||||
longitude = "8.43";
|
||||
|
||||
temperature = {
|
||||
day = 6500;
|
||||
night = 4000;
|
||||
};
|
||||
gamma = "1.0";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
inputs.matugen.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
|
||||
hypridle
|
||||
swww
|
||||
waypaper
|
||||
sway-audio-idle-inhibit
|
||||
libnotify
|
||||
ripdrag
|
||||
woomer
|
||||
hyprpicker
|
||||
wayscriber
|
||||
wl-clipboard
|
||||
avizo
|
||||
mediainfo
|
||||
exiftool
|
||||
deezer-enhanced
|
||||
|
||||
kdePackages.elisa
|
||||
kdePackages.dolphin
|
||||
kdePackages.kate
|
||||
kdePackages.spectacle
|
||||
kdePackages.ark
|
||||
kdePackages.konsole
|
||||
kdePackages.francis
|
||||
|
||||
kdePackages.gwenview
|
||||
kdePackages.breeze-icons
|
||||
|
||||
ffmpeg
|
||||
p7zip
|
||||
jq
|
||||
poppler-utils
|
||||
zoxide
|
||||
resvg
|
||||
imagemagick
|
||||
|
||||
ueberzugpp
|
||||
chafa
|
||||
|
||||
# Multimedia
|
||||
bluetui obs-studio haruna discord signal-desktop spotify pavucontrol playerctl
|
||||
|
||||
# Games
|
||||
prismlauncher
|
||||
|
||||
# Office & Utilities
|
||||
anki libreoffice-qt6 kdePackages.okular kdePackages.svgpart krusader
|
||||
keepassxc bitwarden-desktop filezilla zotero nextcloud-client
|
||||
inkscape pympress xournalpp obsidian nicotine-plus thunderbird masterpdfeditor
|
||||
pandoc qalculate-qt
|
||||
kdePackages.skanlite kdePackages.kwave kdePackages.kbackup kdePackages.kget
|
||||
kdePackages.kamoso kdePackages.filelight kdePackages.isoimagewriter
|
||||
kdePackages.kcalc kdePackages.kompare kdePackages.kolourpaint kdePackages.kdenlive
|
||||
|
||||
# Grafik & Code
|
||||
krita
|
||||
|
||||
# Tools
|
||||
fastfetch fzf ripgrep fd unzip grim slurp cava
|
||||
];
|
||||
}
|
||||
113
home/rofi.nix
Normal file
@@ -0,0 +1,113 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi;
|
||||
extraConfig = {
|
||||
modes = "window,run,ssh,drun";
|
||||
show-icons = true;
|
||||
drun-display-format = "{name}";
|
||||
display-drun = "Apps:";
|
||||
terminal = "alacritty";
|
||||
};
|
||||
theme = "${config.home.homeDirectory}/.config/rofi/main-theme.rasi";
|
||||
};
|
||||
xdg.configFile."rofi/main-theme.rasi".text = ''
|
||||
/* Importiert die von Matugen generierten Farben */
|
||||
@import "${config.home.homeDirectory}/.config/rofi/matugen-colors.rasi"
|
||||
|
||||
configuration {
|
||||
wayland-layer: "overlay";
|
||||
//display-drun: "";
|
||||
//display-run: "";
|
||||
//display-window: "";
|
||||
//display-ssh: "";
|
||||
show-icons: true;
|
||||
}
|
||||
|
||||
* {
|
||||
background-color: @bg0;
|
||||
border-color: @fg0;
|
||||
text-color: @fg0;
|
||||
font: "JetBrainsMono Nerd Font 11";
|
||||
}
|
||||
|
||||
window {
|
||||
width: 100% ;
|
||||
padding: 4px ;
|
||||
anchor: north;
|
||||
location: north;
|
||||
y-offset: -30px;
|
||||
children: [ "horibox" ];
|
||||
background-color: @bg0;
|
||||
}
|
||||
|
||||
horibox {
|
||||
orientation: horizontal;
|
||||
children: [ "container-left", "container-right" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
container-left {
|
||||
orientation: horizontal;
|
||||
expand: true;
|
||||
children: [ "dummy", "inputbar" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
container-right {
|
||||
orientation: horizontal;
|
||||
expand: true;
|
||||
children: [ "listview", "dummy" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
listview {
|
||||
layout: horizontal;
|
||||
horizontal-align: 0.5;
|
||||
spacing: 15px ;
|
||||
lines: 100;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
entry {
|
||||
enabled: true;
|
||||
width: 5em ;
|
||||
expand: false;
|
||||
background-color: transparent;
|
||||
text-color: @fg0;
|
||||
placeholder: "Suche...";
|
||||
placeholder-color: @fg1;
|
||||
}
|
||||
|
||||
prompt {
|
||||
background-color: transparent;
|
||||
text-color: @blue;
|
||||
margin: 0 10px 0 0;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 0px 5px;
|
||||
border-radius: 4px;
|
||||
background-color: transparent;
|
||||
text-color: @fg0;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @bg2;
|
||||
text-color: @fg0;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 1.0em;
|
||||
}
|
||||
'';
|
||||
}
|
||||
73
home/rofi_alternative.nix
Normal file
@@ -0,0 +1,73 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi;
|
||||
extraConfig = {
|
||||
modes = "window,run,ssh,drun";
|
||||
show-icons = true;
|
||||
display-drun = "Apps:";
|
||||
terminal = "alacritty";
|
||||
};
|
||||
theme = "${config.home.homeDirectory}/.config/rofi/main-theme.rasi";
|
||||
};
|
||||
|
||||
xdg.configFile."rofi/main-theme.rasi".text = ''
|
||||
@import "${config.home.homeDirectory}/.config/rofi/matugen-colors.rasi"
|
||||
|
||||
* {
|
||||
font: "JetBrainsMono Nerd Font 12";
|
||||
background-color: transparent;
|
||||
text-color: @fg0;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
spacing: 0px;
|
||||
}
|
||||
|
||||
window {
|
||||
location: center;
|
||||
width: 680;
|
||||
border-radius: 20px;
|
||||
border: 2px;
|
||||
border-color: @blue; /* Hier wird jetzt die Matugen-Farbe genutzt */
|
||||
background-color: @bg0;
|
||||
}
|
||||
|
||||
mainbox { padding: 12px; }
|
||||
|
||||
inputbar {
|
||||
background-color: @bg1;
|
||||
border-color: @bg3;
|
||||
border-radius: 12px;
|
||||
border: 2px;
|
||||
padding: 8px 16px;
|
||||
spacing: 8px;
|
||||
children: [ prompt, entry ];
|
||||
}
|
||||
|
||||
prompt { text-color: @blue; }
|
||||
entry { placeholder: "Search..."; placeholder-color: @fg2; text-color: @fg0; }
|
||||
|
||||
listview {
|
||||
margin: 12px 0 0;
|
||||
lines: 8;
|
||||
columns: 1;
|
||||
fixed-height: false;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 8px 16px;
|
||||
spacing: 12px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
element selected normal {
|
||||
background-color: @bg2;
|
||||
text-color: @blue;
|
||||
}
|
||||
|
||||
element-icon { size: 1.5em; }
|
||||
element-text { text-color: inherit; vertical-align: 0.5; }
|
||||
'';
|
||||
}
|
||||
77
home/shell.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{ pkgs, ... }: {
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
shellAbbrs = {
|
||||
# nix develop -c $SHELL
|
||||
nd = "nix develop -c fish";
|
||||
lg = "lazygit";
|
||||
};
|
||||
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting
|
||||
|
||||
set -g fish_color_param brcyan
|
||||
set -gx LG_CONFIG_FILE "$HOME/.config/lazygit/config.yml,$HOME/.config/lazygit/theme.yml"
|
||||
'';
|
||||
};
|
||||
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
enableFishIntegration = false;
|
||||
|
||||
settings = {
|
||||
default_shell = "fish";
|
||||
theme = "matugen";
|
||||
default_layout = "compact";
|
||||
show_startup_tips = false;
|
||||
|
||||
|
||||
keybinds = {
|
||||
normal = {
|
||||
"bind \"Alt h\"" = { MoveFocus = "Left"; };
|
||||
"bind \"Alt l\"" = { MoveFocus = "Right"; };
|
||||
"bind \"Alt j\"" = { MoveFocus = "Down"; };
|
||||
"bind \"Alt k\"" = { MoveFocus = "Up"; };
|
||||
};
|
||||
|
||||
move = {
|
||||
"bind \"h\"" = { MovePane = "Left"; };
|
||||
"bind \"l\"" = { MovePane = "Right"; };
|
||||
"bind \"j\"" = { MovePane = "Down"; };
|
||||
"bind \"k\"" = { MovePane = "Up"; };
|
||||
};
|
||||
|
||||
resize = {
|
||||
"bind \"h\"" = { Resize = "Increase Left"; };
|
||||
"bind \"l\"" = { Resize = "Increase Right"; };
|
||||
"bind \"j\"" = { Resize = "Increase Down"; };
|
||||
"bind \"k\"" = { Resize = "Increase Up"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings.user = { name = "Nils Walther"; email = "mail@nils-walther.de"; };
|
||||
};
|
||||
|
||||
programs.yt-dlp = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.lazygit = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
}
|
||||
37
home/swaync.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
settings = {
|
||||
positionX = "right";
|
||||
positionY = "top";
|
||||
control-center-margin-top = 10;
|
||||
control-center-margin-right = 10;
|
||||
fit-to-screen = false;
|
||||
};
|
||||
|
||||
style = ''
|
||||
@import "${config.home.homeDirectory}/.config/swaync/colors.css";
|
||||
|
||||
* { font-family: "JetBrainsMono Nerd Font"; }
|
||||
|
||||
.control-center {
|
||||
background: @background;
|
||||
border: 2px solid @primary;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.notification {
|
||||
background: @surface_container;
|
||||
border-radius: 0px;
|
||||
margin: 6px;
|
||||
border: 1px solid @secondary;
|
||||
}
|
||||
|
||||
.summary { color: @primary; font-weight: bold; }
|
||||
.body { color: @foreground; }
|
||||
.critical { background: @urgent; color: @background; }
|
||||
'';
|
||||
};
|
||||
}
|
||||
8
home/swayosd.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.swayosd = {
|
||||
enable = true;
|
||||
topMargin = 0.5;
|
||||
};
|
||||
}
|
||||
24
home/swww.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.swww
|
||||
];
|
||||
|
||||
systemd.user.services.swww = {
|
||||
Unit = {
|
||||
Description = "swww wallpaper daemon";
|
||||
After = [ "graphical-session.target" ];
|
||||
Partof = [ "graphical-session.target" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${pkgs.swww}/bin/swww-daemon";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ "graphical-session.target" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
106
home/theming.nix
Normal file
@@ -0,0 +1,106 @@
|
||||
{ config, pkgs, inputs, lib, ... }: {
|
||||
|
||||
home.pointerCursor = {
|
||||
name = "WhiteSur-cursors";
|
||||
package = pkgs.whitesur-cursors;
|
||||
size = 30;
|
||||
gtk.enable = true;
|
||||
};
|
||||
|
||||
qt = { enable = true; platformTheme.name = "kde"; style.name = "breeze"; };
|
||||
|
||||
xdg.configFile."matugen/config.toml".text = ''
|
||||
[config]
|
||||
reload_apps = true
|
||||
|
||||
[templates.alacritty]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/alacritty.toml"
|
||||
output_path = "${config.home.homeDirectory}/.config/alacritty/colors.toml"
|
||||
|
||||
[templates.btop]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/btop.theme"
|
||||
output_path = "${config.home.homeDirectory}/.config/btop/themes/matugen.theme"
|
||||
|
||||
[templates.gtk]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/colors-gtk.css"
|
||||
output_path = "${config.home.homeDirectory}/.config/matugen/colors.css"
|
||||
|
||||
[templates.hyprland]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/hyprland-colors.conf"
|
||||
output_path = "${config.home.homeDirectory}/.config/hypr/colors.conf"
|
||||
|
||||
[templates.hyprlock]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/hyprlock-colors.conf"
|
||||
output_path = "${config.home.homeDirectory}/.config/hypr/hyprlock-colors.conf"
|
||||
|
||||
[templates.rofi]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/rofi.rasi"
|
||||
output_path = "${config.home.homeDirectory}/.config/rofi/matugen-colors.rasi"
|
||||
|
||||
[templates.fish]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/fish-colors.fish"
|
||||
output_path = "${config.home.homeDirectory}/.config/fish/conf.d/matugen.fish"
|
||||
|
||||
[templates.starship]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/starship.toml"
|
||||
output_path = "${config.home.homeDirectory}/.config/starship.toml"
|
||||
|
||||
[templates.swaync]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/swaync-colors.css"
|
||||
output_path = "${config.home.homeDirectory}/.config/swaync/colors.css"
|
||||
|
||||
[templates.waybar]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/colors-gtk.css"
|
||||
output_path = "${config.home.homeDirectory}/.config/matugen/colors.css"
|
||||
|
||||
[templates.wlogout]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/wlogout-colors.css"
|
||||
output_path = "${config.home.homeDirectory}/.config/wlogout/colors.css"
|
||||
|
||||
[templates.lazygit]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/lazygit_theme.yml"
|
||||
output_path = "${config.home.homeDirectory}/.config/lazygit/theme.yml"
|
||||
|
||||
[templates.zathura]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/zathura"
|
||||
output_path = "${config.home.homeDirectory}/.config/zathura/zathurarc-colors"
|
||||
|
||||
[templates.yazi]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/yazi-theme.toml"
|
||||
output_path = "${config.home.homeDirectory}/.config/yazi/theme.toml"
|
||||
|
||||
[templates.zellij]
|
||||
input_path = "${config.home.homeDirectory}/nixos/templates/zellij.kdl"
|
||||
output_path = "${config.home.homeDirectory}/.config/zellij/themes/matugen.kdl"
|
||||
'';
|
||||
|
||||
home.activation.regenerateMatugen = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
MATUGEN="${inputs.matugen.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/matugen"
|
||||
WALLPAPER="${config.home.homeDirectory}/nixos/wallpaper/current_wallpaper"
|
||||
|
||||
if [ -f "$WALLPAPER" ]; then
|
||||
echo "Matugen: Generiere Farben aus $WALLPAPER..."
|
||||
|
||||
mkdir -p ${config.home.homeDirectory}/.config/alacritty
|
||||
mkdir -p ${config.home.homeDirectory}/.config/btop/themes
|
||||
mkdir -p ${config.home.homeDirectory}/.config/lazygit
|
||||
mkdir -p ${config.home.homeDirectory}/.config/rofi
|
||||
mkdir -p ${config.home.homeDirectory}/.config/swaync
|
||||
mkdir -p ${config.home.homeDirectory}/.config/wlogout
|
||||
mkdir -p ${config.home.homeDirectory}/.config/matugen
|
||||
mkdir -p ${config.home.homeDirectory}/.config/hypr
|
||||
mkdir -p ${config.home.homeDirectory}/.config/fish/conf.d
|
||||
mkdir -p ${config.home.homeDirectory}/.config/wob
|
||||
mkdir -p ${config.home.homeDirectory}/.config/yazi
|
||||
mkdir -p ${config.home.homeDirectory}/.config/zathura
|
||||
mkdir -p ${config.home.homeDirectory}/.config/zellij/themes
|
||||
|
||||
|
||||
$MATUGEN image "$WALLPAPER" --type scheme-vibrant
|
||||
|
||||
${pkgs.procps}/bin/pkill -USR2 waybar || true
|
||||
else
|
||||
echo "Matugen: Wallpaper nicht gefunden ($WALLPAPER)"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
324
home/waybar.nix
Normal file
@@ -0,0 +1,324 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
output = [ "eDP-1" "DP-5" "DP-6" ];
|
||||
|
||||
modules-left = [ "custom/logo" "hyprland/workspaces" "tray" ];
|
||||
modules-center = [ "clock" ];
|
||||
modules-right = [ "network" "idle_inhibitor" "bluetooth" "battery" "custom/notification" ];
|
||||
|
||||
"custom/logo" = {
|
||||
format = "";
|
||||
tooltip = false;
|
||||
on-click = "wlogout";
|
||||
on-click-right = "alacritty -e fish -C fastfetch";
|
||||
};
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
format = "{name}";
|
||||
};
|
||||
|
||||
"clock" = {
|
||||
format = "{:%a %d/%m %H:%M}";
|
||||
tooltip-format = "{:%Y-%m-%d}";
|
||||
};
|
||||
|
||||
"idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = " ";
|
||||
deactivated = " ";
|
||||
};
|
||||
tooltip = true;
|
||||
tooltip-format-activated = "Inhibitor Aktiv";
|
||||
tooltip-format-deactivated = "Idle Aktiv";
|
||||
};
|
||||
|
||||
"custom/audio_idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
exec = "sway-audio-idle-inhibit --dry-print-both-waybar | sed -u 's/\"alt\":\"output-input\"/&,\"tooltip\":\"Audio \\& Mikrofon aktiv\"/; s/\"alt\":\"output\"/&,\"tooltip\":\"Audio spielt\"/; s/\"alt\":\"input\"/&,\"tooltip\":\"Mikrofon wird benutzt\"/; s/\"alt\":\"none\"/&,\"tooltip\":\"Keine Aktivität\"/'";
|
||||
"exec-if" = "which sway-audio-idle-inhibit";
|
||||
"return-type" = "json";
|
||||
tooltip = true;
|
||||
format-icons = {
|
||||
output = " ";
|
||||
input = "";
|
||||
"output-input" = " ";
|
||||
none = "";
|
||||
};
|
||||
};
|
||||
|
||||
"tray" = {
|
||||
icon-size = 18;
|
||||
spacing = 10;
|
||||
};
|
||||
|
||||
"network" = {
|
||||
format-wifi = " {essid}";
|
||||
format-ethernet = " {ifname}";
|
||||
format-linked = "{ipaddr}";
|
||||
format = "{essid}";
|
||||
format-disconnected = " no wifi";
|
||||
on-click = "${pkgs.alacritty}/bin/alacritty -e ${pkgs.networkmanager}/bin/nmtui";
|
||||
on-click-right = "nmcli radio wifi $(nmcli radio wifi | grep -q 'enabled' && echo off || echo on)";
|
||||
tooltip-format = " {bandwidthUpBits} {bandwidthDownBits}\n{ifname}\n{ipaddr}/{cidr}\n";
|
||||
tooltip-format-wifi = " {essid} {frequency}MHz\nStrength: {signalStrength}% ({signaldBm}dBm)\nIP: {ipaddr}/{cidr}\n {bandwidthUpBits} {bandwidthDownBits}";
|
||||
interval = 10;
|
||||
};
|
||||
|
||||
"backlight" = {
|
||||
device = "intel_backlight";
|
||||
format = "{icon}";
|
||||
format-alt = "{percent}%";
|
||||
format-alt-click = "click-right";
|
||||
format-icons = ["" "" "" "" "" "" "" "" ""];
|
||||
tooltip-format = " Helligkeit: {percent}%";
|
||||
on-scroll-down = "brightnessctl s 5%-";
|
||||
on-scroll-up = "brightnessctl s +5%";
|
||||
};
|
||||
|
||||
"bluetooth" = {
|
||||
format = "";
|
||||
format-disabled = "";
|
||||
format-connected = "{device_alias}";
|
||||
format-connected-battery = "{device_alias} {device_battery_percentage}%";
|
||||
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} verbunden\n\n{device_enumerate}";
|
||||
tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
|
||||
tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
|
||||
|
||||
on-click = "alacritty -e bluetui";
|
||||
on-click-right = "rfkill toggle bluetooth";
|
||||
};
|
||||
|
||||
"pulseaudio" = {
|
||||
format = "{icon} {volume}%";
|
||||
format-bluetooth = "{icon} {volume}%";
|
||||
format-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = ["" "" ""];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
on-click-right = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
tooltip-format = "Ausgabelautstärke: {source_volume}% | {desc}";
|
||||
};
|
||||
|
||||
"pulseaudio#microphone" = {
|
||||
format = "{format_source}";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = "";
|
||||
on-click = "pavucontrol";
|
||||
on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
|
||||
on-scroll-up = "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+";
|
||||
on-scroll-down = "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-";
|
||||
tooltip-format = "Eingabelautstärke: {source_volume}% | {source_desc}";
|
||||
scroll-step = 5;
|
||||
};
|
||||
|
||||
"battery" = {
|
||||
interval = 5;
|
||||
format = "{icon}";
|
||||
format-alt = "{capacity}%";
|
||||
format-alt-click = "click-right";
|
||||
format-icons = [ "" "" "" "" "" ];
|
||||
format-charging = "{icon}";
|
||||
format-plugged = "{icon}";
|
||||
tooltip-format = "Akkustand: {capacity}% - {timeTo} - {power}W ";
|
||||
on-click = "alacritty -e btop";
|
||||
states = {
|
||||
full = 100;
|
||||
great = 97;
|
||||
good = 85;
|
||||
ok = 50;
|
||||
warning = 30;
|
||||
low = 20;
|
||||
critical = 10;
|
||||
};
|
||||
};
|
||||
|
||||
"custom/notification" = {
|
||||
tooltip = false;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
notification = "<span foreground='red'><sup></sup></span>";
|
||||
none = "";
|
||||
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
||||
dnd-none = "";
|
||||
};
|
||||
return-type = "json";
|
||||
exec = "swaync-client -swb";
|
||||
on-click = "swaync-client -t -sw";
|
||||
on-click-right = "swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
style = lib.replaceStrings ["#workspaces button.focused"] ["#workspaces button.active"] ''
|
||||
@import "${config.home.homeDirectory}/.config/matugen/colors.css";
|
||||
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
font-family: "JetBrainsMono Nerd Font", "NotoSans Nerd Font Mono";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @background;
|
||||
color: @foreground;
|
||||
border: 1px solid @primary;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @foreground;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: @background;
|
||||
color: @foreground;
|
||||
border-bottom: 2px solid @primary;
|
||||
}
|
||||
|
||||
#custom-logo {
|
||||
font-size: 20px;
|
||||
margin: 0 15px;
|
||||
color: @primary;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 0px;
|
||||
margin-right: 4px;
|
||||
color: @foreground;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: @surface_container_high;
|
||||
color: @foreground;
|
||||
border-bottom: 2px solid @primary;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: @surface_container_high;
|
||||
color: @primary;
|
||||
border-bottom: 2px solid @primary;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: @urgent;
|
||||
color: @background;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: @secondary;
|
||||
color: @background;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#network {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
#clock, #language, #custom-notification, #backlight, #pulseaudio, #bluetooth, #tray {
|
||||
margin: 0 5px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#custom-notification {
|
||||
margin-right: 15px;
|
||||
margin-left: 5px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#custom-audio_idle_inhibitor {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
margin-right: 5px;
|
||||
margin-left: 7px;
|
||||
color: @foreground;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
animation: blink-icon 2s infinite alternate;
|
||||
color: @primary;
|
||||
}
|
||||
|
||||
@keyframes blink-icon {
|
||||
from { color: @primary; }
|
||||
to { color: transparent; }
|
||||
}
|
||||
|
||||
#battery {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 5px;
|
||||
margin-right: 12px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
margin: 0 5px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#battery.ok:not(.charging) {
|
||||
animation: blink-icon 3s infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes blink-icon-yellow {
|
||||
from { color: yellow; }
|
||||
to { color: transparent; }
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
animation: blink-icon-yellow 1.5s infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes blink-icon-orange {
|
||||
from { color: orange; }
|
||||
to { color: transparent; }
|
||||
}
|
||||
|
||||
#battery.low:not(.charging) {
|
||||
color: orange;
|
||||
animation: blink-icon-orange 0.8s infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes blink-icon-red {
|
||||
from { color: red; }
|
||||
to { color: transparent; }
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
animation: blink-icon-red 0.3s infinite alternate;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
35
home/waypaper.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
home.packages = [ pkgs.waypaper ];
|
||||
|
||||
home.activation.configureWaypaper = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
CONFIG_FILE="${config.home.homeDirectory}/.config/waypaper/config.ini"
|
||||
|
||||
if [ ! -f "$CONFIG_FILE" ]; then
|
||||
echo "Erstelle Standard-Waypaper-Konfiguration..."
|
||||
mkdir -p "$(dirname "$CONFIG_FILE")"
|
||||
|
||||
cat > "$CONFIG_FILE" <<EOF
|
||||
[Settings]
|
||||
language = en
|
||||
folder = ${config.home.homeDirectory}/nixos/wallpaper
|
||||
wallpaper = ${config.home.homeDirectory}/nixos/wallpaper/current_wallpaper
|
||||
backend = swww
|
||||
monitors = All
|
||||
fill = fill
|
||||
sort = name
|
||||
color = #ffffff
|
||||
subfolders = False
|
||||
show_hidden = False
|
||||
show_gifs_only = False
|
||||
post_command = cp "\$wallpaper" "${config.home.homeDirectory}/nixos/wallpaper/current_wallpaper" && matugen image "\$wallpaper" --type scheme-vibrant && sleep 0.5 && pkill -USR2 waybar && systemctl --user restart swaync
|
||||
number_of_columns = 3
|
||||
swww_transition_type = fade
|
||||
swww_transition_step = 90
|
||||
swww_transition_angle = 0
|
||||
swww_transition_duration = 2
|
||||
EOF
|
||||
fi
|
||||
'';
|
||||
}
|
||||
57
home/wlogout.nix
Normal file
@@ -0,0 +1,57 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.wlogout = {
|
||||
enable = true;
|
||||
layout = [
|
||||
{ label = "lock"; action = "hyprlock"; text = "Lock (l)"; keybind = "l"; }
|
||||
{ label = "reboot"; action = "systemctl reboot"; text = "Reboot (r)"; keybind = "r"; }
|
||||
{ label = "shutdown"; action = "systemctl poweroff"; text = "Shut Down (s)"; keybind = "s"; }
|
||||
{ label = "logout"; action = "hyprctl dispatch exit"; text = "Exit (e)"; keybind = "e"; }
|
||||
{ label = "suspend"; action = "systemctl suspend"; text = "Suspend (u)"; keybind = "u"; }
|
||||
{ label = "hibernate"; action = "systemctl hibernate"; text = "Hibernate (h)"; keybind = "h"; }
|
||||
];
|
||||
|
||||
style = ''
|
||||
@import url("${config.home.homeDirectory}/.config/wlogout/colors.css");
|
||||
|
||||
* {
|
||||
box-shadow: none;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
border-color: @surface;
|
||||
color: @on_surface;
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 25%;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
button:focus, button:active, button:hover {
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
color: @on_primary;
|
||||
outline-style: none;
|
||||
border-color: @outline;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
}
|
||||
|
||||
#lock { background-image: url("${../icons/lock.png}"); }
|
||||
#logout { background-image: url("${../icons/logout.png}"); }
|
||||
#suspend { background-image: url("${../icons/suspend.png}"); }
|
||||
#hibernate { background-image: url("${../icons/hibernate.png}"); }
|
||||
#shutdown { background-image: url("${../icons/shutdown.png}"); }
|
||||
#reboot { background-image: url("${../icons/reboot.png}"); }
|
||||
'';
|
||||
};
|
||||
}
|
||||
174
home/yazi.nix
Normal file
@@ -0,0 +1,174 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
|
||||
keymap = {
|
||||
manager.prepend_keymap = [
|
||||
{
|
||||
on = [ "g" "e" ];
|
||||
run = "arrow 100000000";
|
||||
desc = "Zum Ende der Liste springen (ge)";
|
||||
}
|
||||
{
|
||||
on = [ "T" ];
|
||||
run = ''shell --orphan --block=false "${pkgs.alacritty}/bin/alacritty"'';
|
||||
desc = "Terminal in neuem Fenster öffnen";
|
||||
}
|
||||
{
|
||||
on = [ "E" ];
|
||||
run = ''shell --orphan --block=false "${pkgs.kdePackages.dolphin}/bin/dolphin ."'';
|
||||
desc = "Dolphin in diesem Ordner öffnen";
|
||||
}
|
||||
{
|
||||
on = [ "G" ];
|
||||
run = ''shell --orphan --block=false "${pkgs.alacritty}/bin/alacritty -e ${pkgs.lazygit}/bin/lazygit"'';
|
||||
desc = "Lazygit in neuem Fenster öffnen";
|
||||
}
|
||||
{
|
||||
on = [ "<C-d>" ];
|
||||
run = ''
|
||||
shell -- ripdrag --no-click --and-exit --icon-size 64 --target --all "$@" | while read -r filepath; do
|
||||
cp -nR "$filepath" .
|
||||
done
|
||||
'';
|
||||
desc = "Drag-n-drop (Copy No-Clobber)";
|
||||
}
|
||||
{
|
||||
on = [ "<C-D>" ];
|
||||
run = ''
|
||||
shell -- ripdrag --no-click --and-exit --icon-size 64 --target --all "$@" | while read -r filepath; do
|
||||
cp -fR "$filepath" .
|
||||
done
|
||||
'';
|
||||
desc = "Drag-n-drop (Force Overwrite)";
|
||||
}
|
||||
{
|
||||
on = [ "i" ];
|
||||
run = ''
|
||||
shell --block --confirm '
|
||||
clear
|
||||
file="$1"
|
||||
mime=$(file --mime-type -b "$file")
|
||||
|
||||
echo "=================================================="
|
||||
echo " EIGENSCHAFTEN: $(basename "$file")"
|
||||
echo "=================================================="
|
||||
|
||||
# Basis-Infos
|
||||
printf "%-18s %s\n" "Typ:" "$mime"
|
||||
printf "%-18s %s\n" "Adresse:" "$(realpath "$file")"
|
||||
printf "%-18s %s (%s Bytes)\n" "Größe:" "$(du -h "$file" | cut -f1)" "$(stat -c %s "$file")"
|
||||
|
||||
echo "--------------------------------------------------"
|
||||
echo " ZEITSTEMPEL"
|
||||
printf "%-18s %s\n" "Geändert:" "$(stat -c %y "$file" | cut -d. -f1)"
|
||||
printf "%-18s %s\n" "Letzter Zugriff:" "$(stat -c %x "$file" | cut -d. -f1)"
|
||||
|
||||
echo "--------------------------------------------------"
|
||||
echo " DETAILS"
|
||||
|
||||
# --- PDF SEKTION ---
|
||||
if [[ "$mime" == "application/pdf" ]]; then
|
||||
# Nutzt pdfinfo aus poppler_utils
|
||||
pdfinfo "$file" | grep -E "Pages:|PDF version:|Title:|Author:|Page size:" | while read -r line; do
|
||||
label=$(echo "$line" | cut -d: -f1)
|
||||
value=$(echo "$line" | cut -d: -f2- | xargs)
|
||||
printf "%-18s %s\n" "$label:" "$value"
|
||||
done
|
||||
|
||||
# --- BILD SEKTION ---
|
||||
elif [[ "$mime" == image/* ]]; then
|
||||
# Nutzt identify aus imagemagick
|
||||
dimensions=$(identify -format "%wx%h" "$file")
|
||||
printf "%-18s %s Pixel\n" "Auflösung:" "$dimensions"
|
||||
printf "%-18s %s\n" "Farbraum:" "$(identify -format "%[colorspace]" "$file")"
|
||||
|
||||
# --- AUDIO/VIDEO SEKTION ---
|
||||
elif [[ "$mime" == audio/* || "$mime" == video/* ]]; then
|
||||
# Nutzt mediainfo für Bitrate und Dauer
|
||||
mediainfo --Inform="General;%-18.18Name: %Format%\n%-18.18Name: %Duration/String3%\n%-18.18Name: %OverallBitRate/String%" "$file"
|
||||
if [[ "$mime" == video/* ]]; then
|
||||
mediainfo --Inform="Video;%-18.18Name: %Width%x%Height% Pixel" "$file"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "=================================================="
|
||||
read -p "Drücke Enter zum Schließen..." _
|
||||
'
|
||||
'';
|
||||
desc = "Detaillierte Eigenschaften (PDF, Media, Image)";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
settings = {
|
||||
mgr = {
|
||||
show_hidden = true;
|
||||
sort_by = "natural";
|
||||
sort_sensitive = true;
|
||||
sort_reverse = false;
|
||||
sort_dir_first = true;
|
||||
linemode = "none";
|
||||
show_symlink = true;
|
||||
ratio = [ 1 3 4 ];
|
||||
layout_transition = "none";
|
||||
};
|
||||
|
||||
sort_by = "natural";
|
||||
sort_sensitive = true;
|
||||
sort_reverse = false;
|
||||
sort_dir_first = true;
|
||||
linemode = "none";
|
||||
show_hidden = true;
|
||||
show_symlink = true;
|
||||
|
||||
preview = {
|
||||
image_filter = "lanczos3";
|
||||
image_quality = 90;
|
||||
tab_size = 1;
|
||||
max_width = 600;
|
||||
max_height = 900;
|
||||
cache_dir = "";
|
||||
ueberzug_scale = 1;
|
||||
ueberzug_offset = [
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
];
|
||||
};
|
||||
opener = {
|
||||
play = [
|
||||
{ run = ''haruna "$@"''; orphan = true; desc = "Play"; }
|
||||
];
|
||||
edit = [
|
||||
{ run = ''$EDITOR "$@"''; block = true; desc = "Edit"; }
|
||||
];
|
||||
view = [
|
||||
{ run = ''gwenview "$@"''; orphan = true; desc = "Gwenview"; }
|
||||
];
|
||||
pdf = [
|
||||
{ run = ''zathura "$@"''; orphan = true; desc = "Zathura"; }
|
||||
];
|
||||
};
|
||||
|
||||
open = {
|
||||
rules = [
|
||||
{ mime = "image/*"; use = "view"; }
|
||||
{ name = "*.svg"; use = "view"; }
|
||||
|
||||
{ mime = "application/pdf"; use = "pdf"; }
|
||||
|
||||
{ mime = "video/*"; use = "play"; }
|
||||
{ mime = "audio/*"; use = "play"; }
|
||||
|
||||
{ mime = "text/*"; use = "edit"; }
|
||||
{ mime = "application/json"; use = "edit"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
home/zathura.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
selection-clipboard = "clipboard";
|
||||
adjust-open = "best-fit";
|
||||
page-h-padding = 10;
|
||||
page-v-padding = 10;
|
||||
recolor = true;
|
||||
};
|
||||
extraConfig = "include zathurarc-colors";
|
||||
};
|
||||
}
|
||||
BIN
icons/hibernate.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
icons/lock.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
icons/logout.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
icons/reboot.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
icons/shutdown.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
icons/suspend.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
46
modules/boot.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
boot = {
|
||||
# --- Bootloader Einstellungen ---
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 5;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
timeout = 5;
|
||||
};
|
||||
|
||||
# --- Kernel & Dateisysteme ---
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
supportedFilesystems = [ "exfat" ];
|
||||
|
||||
#initrd.kernelModules = [ "nvidia" "nvidia_drm" ];
|
||||
|
||||
kernelParams = [
|
||||
"nvidia-drm.modeset=1"
|
||||
"quiet"
|
||||
"splash"
|
||||
"boot.shell_on_fail"
|
||||
"loglevel=3"
|
||||
"rd.systemd.show_status=false"
|
||||
"rd.udev.log_level=3"
|
||||
"udev.log_priority=3"
|
||||
];
|
||||
|
||||
# --- Initrd & Plymouth ---
|
||||
initrd.compressor = "zstd";
|
||||
initrd.verbose = false;
|
||||
consoleLogLevel = 0;
|
||||
|
||||
plymouth = {
|
||||
enable = true;
|
||||
theme = "mac-style";
|
||||
themePackages = [ pkgs.mac-style-plymouth ];
|
||||
};
|
||||
|
||||
# --- Hardware-Modprobe ---
|
||||
extraModprobeConfig = ''options bluetooth disable_ertm=1'';
|
||||
};
|
||||
}
|
||||
32
modules/desktop.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
programs.hyprland.enable = true;
|
||||
security.polkit.enable = true;
|
||||
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
theme = "breeze";
|
||||
settings = {
|
||||
Theme = {
|
||||
CursorTheme = "WhiteSur-cursors";
|
||||
CursorSize = 30;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
security.pam.services.hyprland.enableKwallet = true;
|
||||
security.pam.services.sddm.enableKwallet = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.printing.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
}
|
||||
28
modules/hibernation.nix
Normal file
@@ -0,0 +1,28 @@
|
||||
# https://md.timvandenboom.eth64.de/s/Nils/p/hibernate-TDmskjM02R
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
swapDevices = [ {
|
||||
device = "/var/lib/swapfile";
|
||||
size = 34 * 1024;
|
||||
} ];
|
||||
|
||||
boot.resumeDevice = "/dev/disk/by-uuid/6a9e58be-37d9-4fee-8b67-81a78d80c016";
|
||||
boot.kernelParams = [
|
||||
"resume=UUID=6a9e58be-37d9-4fee-8b67-81a78d80c016"
|
||||
"resume_offset=167837696"
|
||||
];
|
||||
|
||||
powerManagement.enable = true;
|
||||
|
||||
services.logind.settings.Login = {
|
||||
HandleLidSwitch = "suspend-then-hibernate";
|
||||
HandlePowerKey = "poweroff";
|
||||
};
|
||||
|
||||
systemd.sleep.extraConfig = ''
|
||||
[Sleep]
|
||||
HibernateDelaySec=1800
|
||||
'';
|
||||
}
|
||||
11
modules/locale.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ ... }: {
|
||||
networking.hostName = "nixos";
|
||||
networking.networkmanager.enable = true;
|
||||
time.timeZone = "Europe/Berlin";
|
||||
i18n.defaultLocale = "de_DE.UTF-8";
|
||||
console.keyMap = "de";
|
||||
services.xserver.xkb = {
|
||||
layout = "de";
|
||||
options = "caps:escape";
|
||||
};
|
||||
}
|
||||
15
modules/nvidia.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ config, ... }: {
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = true;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
}
|
||||
33
modules/system-packages.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
inputs.mac-style-plymouth.overlays.default
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
dejavu_fonts ibm-plex inter noto-fonts roboto fira fira-code
|
||||
nerd-fonts.jetbrains-mono nerd-fonts.hack
|
||||
newcomputermodern
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git vim wget curl helix
|
||||
swaybg whitesur-cursors copyq
|
||||
kdePackages.kwallet-pam
|
||||
brightnessctl
|
||||
libxkbcommon
|
||||
pavucontrol
|
||||
|
||||
kdePackages.partitionmanager
|
||||
kdePackages.polkit-kde-agent-1
|
||||
];
|
||||
}
|
||||
19
modules/users.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ pkgs, inputs, username, ... }: {
|
||||
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.fish;
|
||||
extraGroups = [ "networkmanager" "wheel" "libvirtd" "video" ];
|
||||
};
|
||||
|
||||
programs.fish.enable = true;
|
||||
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
backupFileExtension = "backup";
|
||||
extraSpecialArgs = { inherit inputs username; };
|
||||
|
||||
users.${username} = import ../home/home.nix;
|
||||
};
|
||||
}
|
||||
28
modules/virtualization.nix
Normal file
@@ -0,0 +1,28 @@
|
||||
# https://md.timvandenboom.eth64.de/s/Nils/p/evdev-passthrough-BTUeHFqMQ3
|
||||
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# --- Virtualisierung (QEMU/KVM & Libvirtd) ---
|
||||
virtualisation.libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
package = pkgs.qemu_kvm;
|
||||
runAsRoot = true;
|
||||
swtpm.enable = true;
|
||||
verbatimConfig = ''
|
||||
cgroup_device_acl = [
|
||||
"/dev/null", "/dev/full", "/dev/zero",
|
||||
"/dev/random", "/dev/urandom",
|
||||
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
|
||||
"/dev/rtc","/dev/hpet", "/dev/vfio/vfio",
|
||||
"/dev/input/by-id/usb-Kinesis_Corporation_Adv360_Pro_5E36F7BBCC9DC86A-if02-event-kbd",
|
||||
"/dev/input/by-id/usb-Keychron_Keychron_4K_Link-event-mouse"
|
||||
]
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# Grafische Oberfläche für die Verwaltung
|
||||
programs.virt-manager.enable = true;
|
||||
}
|
||||
BIN
owl_desktop.png
Normal file
|
After Width: | Height: | Size: 5.0 MiB |
BIN
owl_terminal.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
32
templates/alacritty.toml
Normal file
@@ -0,0 +1,32 @@
|
||||
[colors.primary]
|
||||
background = '{{colors.surface.default.hex}}'
|
||||
foreground = '{{colors.on_surface.default.hex}}'
|
||||
dim_foreground = '{{colors.on_surface_variant.default.hex}}'
|
||||
|
||||
[colors.cursor]
|
||||
text = '{{colors.surface.default.hex}}'
|
||||
cursor = '{{colors.primary.default.hex}}'
|
||||
|
||||
[cursor]
|
||||
style = { shape = "Block", blinking = "Always" }
|
||||
vi_mode_style = { shape = "Block" }
|
||||
|
||||
[colors.normal]
|
||||
black = '{{colors.surface_container.default.hex}}'
|
||||
red = '{{colors.error.default.hex}}'
|
||||
green = '{{colors.primary.default.hex}}'
|
||||
yellow = '{{colors.tertiary_container.default.hex}}'
|
||||
blue = '{{colors.secondary.default.hex}}'
|
||||
magenta = '{{colors.tertiary.default.hex}}'
|
||||
cyan = '{{colors.primary_container.default.hex}}'
|
||||
white = '{{colors.on_surface.default.hex}}'
|
||||
|
||||
[colors.bright]
|
||||
black = '{{colors.surface_container_high.default.hex}}'
|
||||
red = '{{colors.error_container.default.hex}}'
|
||||
green = '{{colors.inverse_primary.default.hex}}'
|
||||
yellow = '{{colors.on_tertiary_container.default.hex}}'
|
||||
blue = '{{colors.on_secondary_container.default.hex}}'
|
||||
magenta = '{{colors.on_tertiary.default.hex}}'
|
||||
cyan = '{{colors.on_primary_container.default.hex}}'
|
||||
white = '{{colors.inverse_surface.default.hex}}'
|
||||
101
templates/bookmarks.txt
Normal file
@@ -0,0 +1,101 @@
|
||||
Vaultwarden [toolbar] :: https://vw.timvandenboom.eth64.de/#/login
|
||||
VR Bank [banking] :: https://www.vvrbank-krp.de/startseite.html
|
||||
Paypal [banking] :: https://www.paypal.com/de/home
|
||||
Scalable Capital [banking] :: https://de.scalable.capital/cockpit/
|
||||
Firefly III [banking] :: https://firefly.timvandenboom.eth64.de/
|
||||
Firefly Importer [banking] :: https://importer.firefly.timvandenboom.eth64.de/token
|
||||
Zeit [news] :: https://www.zeit.de/
|
||||
Zeit Epaper [news] :: https://epaper.zeit.de/abo/diezeit
|
||||
Tagesschau [news] :: https://www.tagesschau.de/
|
||||
NX Netflix [streaming] :: https://www.netflix.com/de/
|
||||
Disney+ [streaming] :: https://www.disneyplus.com/
|
||||
YouTube [streaming] :: https://www.youtube.com/
|
||||
Yewtube [streaming] :: https://yewtu.be/
|
||||
Twitch [streaming] :: https://www.twitch.tv/
|
||||
SoundCloud [streaming] :: https://soundcloud.com/
|
||||
Spotify [streaming] :: https://open.spotify.com/
|
||||
TIDAL [streaming] :: https://listen.tidal.com/
|
||||
Emby Connect [streaming] :: https://emby.media/pin.html
|
||||
Deezer [streaming] :: https://www.deezer.com/de/
|
||||
Syrics [streaming] :: https://syrics-web.vercel.app/
|
||||
Moodle [dhbw] :: https://moodle.dhbw-mannheim.de/login/index.php
|
||||
Dualis [dhbw] :: https://dualis.dhbw.de/
|
||||
Overleaf [dhbw] :: https://www.overleaf.com/project
|
||||
Wikipedia [dhbw] :: https://de.wikipedia.org/wiki/Wikipedia:Hauptseite
|
||||
Zotero [dhbw] :: https://www.zotero.org/niills/library
|
||||
CTAN [dhbw] :: https://ctan.org/?lang=de
|
||||
GeoGebra [dhbw] :: https://www.geogebra.org/calculator
|
||||
GOG [shops] :: https://www.gog.com/de/
|
||||
Hetzner Cloud [shops] :: https://console.hetzner.cloud/projects
|
||||
Hetzner Storage Box [shops] :: https://robot.hetzner.com/storage
|
||||
Gumroad [shops] :: https://gumroad.com/library
|
||||
Excalidraw [edit] :: https://excalidraw.com/
|
||||
Photopea [edit] :: https://www.photopea.com/
|
||||
PIKIMOV [edit] :: https://pikimov.com/app/
|
||||
draw.io [edit] :: https://app.diagrams.net/?src=about
|
||||
Zathura Docs [edit] :: https://pwmt.org/projects/zathura/documentation/
|
||||
Helix Docs [edit] :: https://docs.helix-editor.com/keymap.html
|
||||
niri-dots [edit] :: https://github.com/shreyas-sha3/niri-dots
|
||||
Sharelatex [tim] :: https://sharelatex.timvandenboom.eth64.de/login
|
||||
Stirling PDF [tim] :: https://pdf.timvandenboom.eth64.de/
|
||||
ConvertX [tim] :: https://convertx.timvandenboom.eth64.de/login
|
||||
Nextcloud [tim] :: https://nextcloud.timvandenboom.eth64.de/apps/files/files
|
||||
RePod [tim] :: https://nextcloud.timvandenboom.eth64.de/apps/repod/
|
||||
Docmost [tim] :: https://md.timvandenboom.eth64.de/home
|
||||
Homepage [tim] :: https://timvandenboom.eth64.de/
|
||||
S-Nextcloud [tim] :: https://nextcloud.wvss-mannheim.de/s/YxrbKinKkFXN4FZ
|
||||
PLANKA [tim] :: https://kanban.timvandenboom.eth64.de/login
|
||||
Radicale [tim] :: https://calendar.timvandenboom.eth64.de/.web/
|
||||
VoucherVault [tim] :: https://vouchervault.timvandenboom.eth64.de/de/dashboard
|
||||
Open Archiver [tim] :: https://openarchiver.timvandenboom.eth64.de/signin
|
||||
IT Tools [tim] :: https://ittools.timvandenboom.eth64.de/
|
||||
Linkwarden [tim] :: https://paperless.timvandenboom.eth64.de/dashboard
|
||||
navidrome [tim] :: https://navidrome.timvandenboom.eth64.de
|
||||
gitea [tim] :: https://gitea.timvandenboom.eth64.de/
|
||||
Google Kalender [essentials] :: https://calendar.google.com/calendar/u/0/r?pli=1
|
||||
Gmail [essentials] :: https://mail.google.com/mail/u/0/#inbox/FMfcgzQZVKCHnkcpwKSvfgBgmMNpQdfp
|
||||
ZEIT [default] :: https://www.zeit.de/index
|
||||
🤖 ChatGPT [default] :: https://chatgpt.com/
|
||||
Podcast [default] :: https://nextcloud.timvandenboom.eth64.de/apps/repod/
|
||||
✨ Gemini [default] :: https://gemini.google.com/app
|
||||
Portainer [cloud] :: https://192.168.178.39:9443/#!/home
|
||||
Firefly III Local [cloud] :: http://192.168.178.39:82/
|
||||
Paperless ngx [cloud] :: http://192.168.178.39:8777/dashboard
|
||||
Nextcloud Local [cloud] :: http://192.168.178.39:8080/apps/files/files
|
||||
Immich [cloud] :: http://192.168.178.39:2283/
|
||||
Emby [cloud] :: http://192.168.178.39:8096/web/index.html#!/home
|
||||
Jellyseerr [cloud] :: http://192.168.178.39:8097/
|
||||
Kavita [cloud] :: http://192.168.178.39:2511/home
|
||||
Navidrome [cloud] :: http://192.168.178.39:4533/app/#/album/all?sort=name&order=ASC&filter={}
|
||||
Spotizerr [cloud] :: http://192.168.178.39:7171/?q=&type=track
|
||||
Dawarich [cloud] :: http://192.168.178.39:3000/map
|
||||
Grocy [cloud] :: http://192.168.178.39:9092/stockoverview
|
||||
Sharelatex Local [cloud] :: http://192.168.178.39:420/project
|
||||
Yamtrack [cloud] :: http://192.168.178.39:8282/
|
||||
FritzBox [cloud] :: https://fritz.box/
|
||||
SearXNG [cloud] :: http://192.168.178.39:2501/
|
||||
Homepage [cloud] :: http://192.168.178.39:3100/
|
||||
ArchiveBox [cloud] :: http://192.168.178.39:8040/admin/core/snapshot/
|
||||
Stirling PDF Local [cloud] :: http://192.168.178.39:8320/?lang=de_DE
|
||||
Mealie [cloud] :: http://192.168.178.39:9091/g/home?orderBy=created_at
|
||||
ConvertX Local [cloud] :: http://192.168.178.39:3522/
|
||||
Vaultwarden Local [cloud] :: http://192.168.178.39:2501/home
|
||||
Jellyfin [cloud] :: http://192.168.178.39:8096/web/index.html#/home.html
|
||||
Deemix [cloud] :: http://192.168.178.39:6595/
|
||||
Paypal Login [banking] :: https://www.paypal.com/signin?returnUri=https%3A%2F%2Fwww.paypal.com%2Fmyaccount%2Fsummary&state=
|
||||
VR Bank Login [banking] :: https://www.vvrbank-krp.de/services_cloud/portal/m/banking_start
|
||||
Bitkasten [banking] :: https://mein.bitkasten.de/portal/inbox
|
||||
Soundcloud Discover [musik] :: https://soundcloud.com/discover
|
||||
Samplette [musik] :: https://samplette.io/48842580
|
||||
Splice [musik] :: https://splice.com/sounds
|
||||
Mail [musik] :: https://mail.google.com/mail/u/0/#inbox
|
||||
Rust Doc [docs] :: https://doc.rust-lang.org/book/
|
||||
NixOS Search [docs] :: https://search.nixos.org/packages
|
||||
Mouseless Trainer [tools] :: https://brysonmcbee.itch.io/mouseless-trainer
|
||||
Yazi Features [tools] :: https://yazi-rs.github.io/features/
|
||||
Yazi Quick Start [tools] :: https://yazi-rs.github.io/docs/quick-start/
|
||||
TB Typst Symbol [docs] :: https://typst.app/docs/reference/symbols/sym/
|
||||
TB Detypify [tools] :: https://detypify.quarticcat.com/
|
||||
Discord [social] :: https://discord.com/channels/@me
|
||||
Reddit [social] :: https://www.reddit.com/
|
||||
Google Drive [cloud]
|
||||
31
templates/btop.theme
Normal file
@@ -0,0 +1,31 @@
|
||||
theme[main_bg]=""
|
||||
|
||||
theme[main_fg]="{{colors.on_surface.default.hex}}"
|
||||
|
||||
theme[title]="{{colors.primary.default.hex}}"
|
||||
|
||||
theme[hi_fg]="{{colors.tertiary.default.hex}}"
|
||||
|
||||
theme[selected_bg]="{{colors.primary_container.default.hex}}"
|
||||
|
||||
theme[selected_fg]="{{colors.on_primary_container.default.hex}}"
|
||||
|
||||
theme[inactive_fg]="{{colors.outline.default.hex}}"
|
||||
|
||||
|
||||
theme[cpu_box]="{{colors.primary.default.hex}}"
|
||||
theme[cpu_start]="{{colors.primary.default.hex}}"
|
||||
theme[cpu_mid]="{{colors.secondary.default.hex}}"
|
||||
theme[cpu_end]="{{colors.tertiary.default.hex}}"
|
||||
|
||||
theme[mem_box]="{{colors.primary.default.hex}}"
|
||||
|
||||
theme[net_box]="{{colors.primary.default.hex}}"
|
||||
|
||||
theme[proc_box]="{{colors.primary.default.hex}}"
|
||||
|
||||
theme[div_line]="{{colors.outline.default.hex}}"
|
||||
|
||||
theme[temp_start]="{{colors.primary.default.hex}}"
|
||||
theme[temp_mid]="{{colors.secondary.default.hex}}"
|
||||
theme[temp_end]="{{colors.error.default.hex}}"
|
||||
8
templates/colors-gtk.css
Normal file
@@ -0,0 +1,8 @@
|
||||
@define-color background {{colors.surface.default.hex}};
|
||||
@define-color foreground {{colors.on_surface.default.hex}};
|
||||
@define-color primary {{colors.primary.default.hex}};
|
||||
@define-color on_primary {{colors.on_primary.default.hex}};
|
||||
@define-color secondary {{colors.secondary.default.hex}};
|
||||
@define-color surface_container {{colors.surface_container.default.hex}};
|
||||
@define-color surface_container_high {{colors.surface_container_high.default.hex}};
|
||||
@define-color urgent {{colors.error.default.hex}};
|
||||
14
templates/fish-colors.fish
Normal file
@@ -0,0 +1,14 @@
|
||||
set -g fish_color_normal {{colors.on_surface.default.hex}}
|
||||
set -g fish_color_command {{colors.primary.default.hex}}
|
||||
set -g fish_color_keyword {{colors.tertiary.default.hex}}
|
||||
set -g fish_color_quote {{colors.secondary.default.hex}}
|
||||
set -g fish_color_redirection {{colors.on_surface.default.hex}}
|
||||
set -g fish_color_end {{colors.on_surface.default.hex}}
|
||||
set -g fish_color_error {{colors.error.default.hex}}
|
||||
set -g fish_color_param {{colors.on_surface_variant.default.hex}}
|
||||
set -g fish_color_comment {{colors.outline.default.hex}}
|
||||
set -g fish_color_selection --background={{colors.surface_variant.default.hex}}
|
||||
set -g fish_color_search_match --background={{colors.surface_variant.default.hex}}
|
||||
set -g fish_color_operator {{colors.on_surface.default.hex}}
|
||||
set -g fish_color_escape {{colors.tertiary.default.hex}}
|
||||
set -g fish_color_autosuggestion 555
|
||||
19
templates/hyprland-colors.conf
Normal file
@@ -0,0 +1,19 @@
|
||||
$primary = rgba({{colors.primary.default.hex_stripped}}ff)
|
||||
$on_primary = rgba({{colors.on_primary.default.hex_stripped}}ff)
|
||||
$primary_container = rgba({{colors.primary_container.default.hex_stripped}}ff)
|
||||
$on_primary_container = rgba({{colors.on_primary_container.default.hex_stripped}}ff)
|
||||
|
||||
$secondary = rgba({{colors.secondary.default.hex_stripped}}ff)
|
||||
$on_secondary = rgba({{colors.on_secondary.default.hex_stripped}}ff)
|
||||
|
||||
$error = rgba({{colors.error.default.hex_stripped}}ff)
|
||||
|
||||
$background = rgba({{colors.background.default.hex_stripped}}ff)
|
||||
$on_background = rgba({{colors.on_background.default.hex_stripped}}ff)
|
||||
|
||||
$surface = rgba({{colors.surface.default.hex_stripped}}ff)
|
||||
$surface_variant = rgba({{colors.surface_variant.default.hex_stripped}}ff)
|
||||
$on_surface = rgba({{colors.on_surface.default.hex_stripped}}ff)
|
||||
$on_surface_variant = rgba({{colors.on_surface_variant.default.hex_stripped}}ff)
|
||||
|
||||
$outline = rgba({{colors.outline.default.hex_stripped}}ff)
|
||||
5
templates/hyprlock-colors.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
$background = rgb({{colors.background.default.hex_stripped}})
|
||||
$foreground = rgb({{colors.on_background.default.hex_stripped}})
|
||||
$primary = rgb({{colors.primary.default.hex_stripped}})
|
||||
$accent = rgb({{colors.primary_container.default.hex_stripped}})
|
||||
$wallpaper = /home/nils/nixos/wallpaper/wallpaper.png
|
||||
23
templates/lazygit_theme.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
gui:
|
||||
theme:
|
||||
activeBorderColor:
|
||||
- "{{colors.primary.default.hex}}"
|
||||
- bold
|
||||
inactiveBorderColor:
|
||||
- "{{colors.outline.default.hex}}"
|
||||
optionsTextColor:
|
||||
- "{{colors.primary.default.hex}}"
|
||||
selectedLineBgColor:
|
||||
- "{{colors.surface_container_highest.default.hex}}"
|
||||
selectedRangeBgColor:
|
||||
- "{{colors.surface_container_highest.default.hex}}"
|
||||
cherryPickedCommitBgColor:
|
||||
- "{{colors.tertiary.default.hex}}"
|
||||
cherryPickedCommitFgColor:
|
||||
- "{{colors.on_tertiary.default.hex}}"
|
||||
unstagedChangesColor:
|
||||
- "{{colors.error.default.hex}}"
|
||||
defaultFgColor:
|
||||
- "{{colors.on_surface.default.hex}}"
|
||||
searchingActiveBorderColor:
|
||||
- "{{colors.tertiary.default.hex}}"
|
||||
15
templates/rofi.rasi
Normal file
@@ -0,0 +1,15 @@
|
||||
* {
|
||||
bg0: {{colors.surface.default.hex}}cc;
|
||||
bg1: {{colors.surface_container.default.hex}};
|
||||
bg2: {{colors.surface_container_high.default.hex}};
|
||||
bg3: {{colors.outline.default.hex}};
|
||||
fg0: {{colors.on_surface.default.hex}};
|
||||
fg1: {{colors.on_surface_variant.default.hex}};
|
||||
fg2: {{colors.outline.default.hex}};
|
||||
red: {{colors.error.default.hex}};
|
||||
green: {{colors.primary.default.hex}};
|
||||
yellow: {{colors.tertiary.default.hex}};
|
||||
blue: {{colors.secondary.default.hex}};
|
||||
magenta: {{colors.inverse_primary.default.hex}};
|
||||
cyan: {{colors.primary_container.default.hex}};
|
||||
}
|
||||
69
templates/starship.toml
Normal file
@@ -0,0 +1,69 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
format = """
|
||||
[░▒▓]({{colors.primary_container.default.hex}})\
|
||||
$username\
|
||||
[ ](bg:{{colors.primary_container.default.hex}} fg:{{colors.on_primary_container.default.hex}})\
|
||||
$directory\
|
||||
$time\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
$nix_shell\
|
||||
$character"""
|
||||
|
||||
[username]
|
||||
show_always = true
|
||||
style_user = "bg:{{colors.primary_container.default.hex}} fg:{{colors.on_primary_container.default.hex}}"
|
||||
format = "[ $user]($style)"
|
||||
|
||||
[directory]
|
||||
style = "fg:{{colors.on_primary.default.hex}} bg:{{colors.primary.default.hex}}"
|
||||
format = "[ $path ]($style)"
|
||||
truncation_length = 3
|
||||
truncation_symbol = "…/"
|
||||
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
|
||||
[time]
|
||||
disabled = false
|
||||
time_format = "%R"
|
||||
style = "bg:{{colors.surface_container.default.hex}}"
|
||||
format = '[[ $time ](fg:{{colors.on_surface_variant.default.hex}} bg:{{colors.surface_container.default.hex}})]($style)'
|
||||
|
||||
[git_branch]
|
||||
disabled = false
|
||||
symbol = " "
|
||||
style = "bg:{{colors.secondary.default.hex}} fg:{{colors.on_secondary.default.hex}}"
|
||||
format = '[ $symbol$branch ](bold $style)'
|
||||
|
||||
[git_status]
|
||||
disabled = false
|
||||
style = "bg:{{colors.secondary.default.hex}} fg:{{colors.on_secondary.default.hex}}"
|
||||
format = '[$all_status$ahead_behind]($style)'
|
||||
|
||||
# up_to_date = " synced "
|
||||
modified = "modified "
|
||||
staged = "staged "
|
||||
untracked = "untracked "
|
||||
ahead = "ahead ⇡${count} "
|
||||
behind = "behind ⇣${count} "
|
||||
diverged = "diverged ⇕⇡${ahead_count}⇣${behind_count} "
|
||||
conflicted = "conflict "
|
||||
stashed = "stashed "
|
||||
renamed = "renamed "
|
||||
deleted = "deleted "
|
||||
|
||||
[nix_shell]
|
||||
disabled = false
|
||||
format = '[ <$name> ]($style)'
|
||||
style = "bg:{{colors.surface_variant.default.hex}} fg:{{colors.on_surface_variant.default.hex}}"
|
||||
impure_msg = '(impure)'
|
||||
pure_msg = '(pure)'
|
||||
|
||||
[character]
|
||||
success_symbol = "[ ➜]({{colors.primary.default.hex}})"
|
||||
error_symbol = "[ ERROR ](bold {{colors.error.default.hex}})[➜]({{colors.error.default.hex}})"
|
||||
6
templates/swaync-colors.css
Normal file
@@ -0,0 +1,6 @@
|
||||
@define-color background {{colors.surface.default.hex}};
|
||||
@define-color foreground {{colors.on_surface.default.hex}};
|
||||
@define-color primary {{colors.primary.default.hex}};
|
||||
@define-color secondary {{colors.secondary.default.hex}};
|
||||
@define-color surface_container {{colors.surface_container.default.hex}};
|
||||
@define-color urgent {{colors.error.default.hex}};
|
||||
6
templates/wlogout-colors.css
Normal file
@@ -0,0 +1,6 @@
|
||||
@define-color background {{colors.surface.default.hex}};
|
||||
@define-color foreground {{colors.on_surface.default.hex}};
|
||||
@define-color primary {{colors.primary.default.hex}};
|
||||
@define-color surface {{colors.surface_container.default.hex}};
|
||||
@define-color surface_variant {{colors.surface_variant.default.hex}};
|
||||
@define-color error {{colors.error.default.hex}};
|
||||
3
templates/wob.ini
Normal file
@@ -0,0 +1,3 @@
|
||||
bar_color = {{colors.primary.default.hex_stripped}}ff
|
||||
border_color = {{colors.outline.default.hex_stripped}}ff
|
||||
background_color = {{colors.surface.default.hex_stripped}}dd
|
||||
165
templates/yazi-theme.toml
Normal file
@@ -0,0 +1,165 @@
|
||||
# : Manager [[[
|
||||
|
||||
[manager]
|
||||
cwd = { fg = "{{colors.on_surface.default.hex}}" }
|
||||
|
||||
# Tab
|
||||
tab_active = { fg = "#D4D4D4", bg = "#1E1E1E" }
|
||||
tab_inactive = { fg = "#D4D4D4", bg = "#2D2D2D" }
|
||||
tab_width = 1
|
||||
|
||||
# Find
|
||||
find_keyword = { fg = "{{colors.error.default.hex}}", bold = true, italic = true, underline = true }
|
||||
find_position = { fg = "{{colors.error.default.hex}}", bold = true, italic = true }
|
||||
|
||||
# Marker
|
||||
marker_copied = { fg = "{{colors.tertiary_fixed.default.hex | auto_lightness: 20.0}}", bg = "{{colors.tertiary_fixed.default.hex | auto_lightness: 20.0}}" }
|
||||
marker_cut = { fg = "{{colors.tertiary_fixed.default.hex}}", bg = "{{colors.tertiary_fixed.default.hex}}" }
|
||||
marker_marked = { fg = "{{colors.error.default.hex}}", bg = "{{colors.error.default.hex}}" }
|
||||
marker_selected = { fg = "{{colors.tertiary.default.hex}}", bg = "{{colors.tertiary.default.hex}}" }
|
||||
|
||||
# Count
|
||||
count_copied = { fg = "{{colors.on_tertiary_fixed.default.hex}}", bg = "{{colors.tertiary_fixed.default.hex}}" }
|
||||
count_cut = { fg = "{{colors.on_tertiary_fixed.default.hex}}", bg = "{{colors.tertiary_fixed.default.hex}}" }
|
||||
count_selected = { fg = "{{colors.on_primary.default.hex}}", bg = "{{colors.tertiary.default.hex}}" }
|
||||
|
||||
# Border
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "{{colors.surface_tint.default.hex}}" }
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : Status [[[
|
||||
|
||||
[status]
|
||||
separator_open = "🭁"
|
||||
separator_close = "🭠"
|
||||
separator_style = { bg = "{{colors.on_primary.default.hex}}", fg = "#F4A261" }
|
||||
|
||||
[mode]
|
||||
# Mode
|
||||
normal_main = { bg = "{{colors.primary.default.hex}}", fg = "{{colors.on_primary.default.hex}}", bold = true }
|
||||
normal_alt = { bg = "{{colors.surface_variant.default.hex}}", fg = "{{colors.on_surface_variant.default.hex}}" }
|
||||
|
||||
# Select mode
|
||||
select_main = { bg = "{{colors.secondary.default.hex}}", fg = "{{colors.on_secondary.default.hex}}", bold = true }
|
||||
select_alt = { bg = "{{colors.surface_variant.default.hex}}", fg = "{{colors.on_surface_variant.default.hex}}" }
|
||||
|
||||
# Unset mode
|
||||
unset_main = { bg = "{{colors.tertiary.default.hex}}", fg = "{{colors.on_tertiary.default.hex}}", bold = true }
|
||||
unset_alt = { bg = "{{colors.surface_variant.default.hex}}", fg = "{{colors.on_surface_variant.default.hex}}" }
|
||||
|
||||
# Progress
|
||||
progress_label = { bold = true }
|
||||
progress_normal = { fg = "{{colors.primary.default.hex}}", bg = "{{colors.surface_bright.default.hex}}" }
|
||||
progress_error = { fg = "{{colors.error.default.hex}}", bg = "{{colors.surface_bright.default.hex}}" }
|
||||
|
||||
# Permissions
|
||||
permissions_t = { fg = "{{colors.secondary.default.hex | auto_lightness: 30.0}}" }
|
||||
permissions_w = { fg = "{{colors.tertiary.default.hex | auto_lightness: 30.0}}" }
|
||||
permissions_x = { fg = "{{colors.error.default.hex | auto_lightness: 30.0}}" }
|
||||
permissions_r = { fg = "{{colors.tertiary_fixed.default.hex | auto_lightness: 30.0}}" }
|
||||
permissions_s = { fg = "{{colors.primary_fixed.default.hex | auto_lightness: 30.0}}" }
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : Select [[[
|
||||
|
||||
[select]
|
||||
border = { fg = "{{colors.primary.default.hex}}" }
|
||||
active = { fg = "{{colors.tertiary.default.hex}}", bold = true }
|
||||
inactive = {}
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : Input [[[
|
||||
|
||||
[input]
|
||||
border = { fg = "{{colors.primary.default.hex}}" }
|
||||
value = { fg = "{{colors.on_surface.default.hex}}" }
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : Completion [[[
|
||||
|
||||
[completion]
|
||||
border = { fg = "{{colors.primary.default.hex}}", bg = "{{colors.on_primary.default.hex}}" }
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : Tasks [[[
|
||||
|
||||
[tasks]
|
||||
border = { fg = "{{colors.primary.default.hex}}" }
|
||||
title = {}
|
||||
hovered = { fg = "{{colors.tertiary_fixed.default.hex}}", underline = true }
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : Which [[[
|
||||
|
||||
[which]
|
||||
cols = 3
|
||||
mask = { bg = "{{colors.surface_bright.default.hex}}" }
|
||||
cand = { fg = "{{colors.primary.default.hex}}" }
|
||||
rest = { fg = "{{colors.on_primary.default.hex}}" }
|
||||
desc = { fg = "{{colors.on_surface.default.hex}}" }
|
||||
separator = " ▶ "
|
||||
separator_style = { fg = "{{colors.on_surface.default.hex}}" }
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : Help [[[
|
||||
|
||||
[help]
|
||||
on = { fg = "{{colors.on_surface.default.hex}}" }
|
||||
run = { fg = "{{colors.on_surface.default.hex}}" }
|
||||
footer = { fg = "{{colors.on_secondary.default.hex}}", bg = "{{colors.secondary.default.hex}}" }
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : Notify [[[
|
||||
|
||||
[notify]
|
||||
title_info = { fg = "{{colors.tertiary.default.hex}}" }
|
||||
title_warn = { fg = "{{colors.primary.default.hex}}" }
|
||||
title_error = { fg = "{{colors.error.default.hex}}" }
|
||||
|
||||
# : ]]]
|
||||
|
||||
|
||||
# : File-specific styles [[[
|
||||
|
||||
[filetype]
|
||||
|
||||
rules = [
|
||||
# Images
|
||||
{ mime = "image/*", fg = "#94e2d5" },
|
||||
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", fg = "#f9e2af" },
|
||||
|
||||
# Archives
|
||||
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#f5c2e7" },
|
||||
|
||||
# Documents
|
||||
{ mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" },
|
||||
|
||||
# Special files
|
||||
{ name = "*", is = "orphan", bg = "{{colors.error_container.default.hex}}" },
|
||||
{ name = "*", is = "exec", fg = "{{colors.on_error_container.default.hex}}" },
|
||||
|
||||
# Fallback
|
||||
{ name = "*", fg = "{{colors.on_surface.default.hex}}" },
|
||||
{ name = "*/", fg = "{{colors.surface_tint.default.hex}}" },
|
||||
]
|
||||
|
||||
# : ]]]
|
||||
20
templates/zathura
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
set default-bg "{{colors.surface_container.default.hex}}"
|
||||
set default-fg "{{colors.on_surface.default.hex}}"
|
||||
set statusbar-bg "{{colors.surface_container.default.hex}}"
|
||||
set statusbar-fg "{{colors.on_surface.default.hex}}"
|
||||
set inputbar-bg "{{colors.surface_container_high.default.hex}}"
|
||||
set inputbar-fg "{{colors.primary.default.hex}}"
|
||||
set notification-bg "{{colors.surface_container_highest.default.hex}}"
|
||||
set notification-fg "{{colors.on_surface.default.hex}}"
|
||||
set notification-error-bg "{{colors.error_container.default.hex}}"
|
||||
set notification-error-fg "{{colors.on_error_container.default.hex}}"
|
||||
set notification-warning-bg "{{colors.error_container.default.hex}}"
|
||||
set notification-warning-fg "{{colors.on_error_container.default.hex}}"
|
||||
|
||||
set completion-bg "{{colors.surface_container.default.hex}}"
|
||||
set completion-fg "{{colors.on_surface.default.hex}}"
|
||||
set completion-highlight-bg "{{colors.primary.default.hex}}"
|
||||
set completion-highlight-fg "{{colors.on_primary.default.hex}}"
|
||||
set recolor-lightcolor "{{colors.surface.default.hex}}"
|
||||
set recolor-darkcolor "{{colors.on_surface.default.hex}}"
|
||||
15
templates/zellij.kdl
Normal file
@@ -0,0 +1,15 @@
|
||||
themes {
|
||||
matugen {
|
||||
fg "{{colors.on_surface.default.hex}}"
|
||||
bg "{{colors.surface_container_high.default.hex}}"
|
||||
black "{{colors.surface_container.default.hex}}"
|
||||
red "{{colors.tertiary.default.hex}}"
|
||||
orange "{{colors.secondary.default.hex}}"
|
||||
green "{{colors.primary.default.hex}}"
|
||||
yellow "{{colors.secondary_container.default.hex}}"
|
||||
blue "{{colors.primary_container.default.hex}}"
|
||||
magenta "{{colors.tertiary_container.default.hex}}"
|
||||
cyan "{{colors.on_surface_variant.default.hex}}"
|
||||
white "{{colors.on_surface.default.hex}}"
|
||||
}
|
||||
}
|
||||
BIN
wallpaper/GhibiliRoots.png
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
BIN
wallpaper/GhibiliStream.png
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
BIN
wallpaper/Hanabi.jpg
Normal file
|
After Width: | Height: | Size: 395 KiB |
BIN
wallpaper/a-c-Eg7e88ES_3w-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 6.3 MiB |
BIN
wallpaper/a_branch_with_pink_flowers_01.jpg
Normal file
|
After Width: | Height: | Size: 592 KiB |
BIN
wallpaper/adrian-appalsamy-2CUBIb8I8-s-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
wallpaper/adrien-olichon-RCAhiGJsUUE-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
wallpaper/andrea-de-santis-Lul4MEKWu5Q-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 14 MiB |
BIN
wallpaper/annie-spratt-Wtc9YH-g8Ag-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 7.0 MiB |
BIN
wallpaper/asa-rodger-B8xmtKWLrVo-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
wallpaper/ashim-d-silva-WeYamle9fDM-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
wallpaper/cristina-gottardi-R4y_E5ZQDPg-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 5.8 MiB |
BIN
wallpaper/current_wallpaper
Normal file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
wallpaper/elliott-c7fnnMRL8P4-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
wallpaper/eric-muhr-GBu6EftQBME-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 7.9 MiB |
BIN
wallpaper/farid-mardanov-dFpjJvsIJjI-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 4.2 MiB |
BIN
wallpaper/federico-di-dio-photography-Wstln0400pE-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 8.1 MiB |
BIN
wallpaper/fredrik-solli-wandem-TrPwD7wfrG0-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 5.8 MiB |
BIN
wallpaper/frida-lannerstrom-Pomm1KDR9yY-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
wallpaper/henry-be-zWt9PnB4pCE-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
wallpaper/isai-ramos-_3SFFsWqCVg-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 545 KiB |
BIN
wallpaper/iwin-ls1-GTFNwcM-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
wallpaper/jeremy-bishop-cFvK2V6l9Tg-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 5.2 MiB |
BIN
wallpaper/jeremy-hynes-zLrqHNms8eE-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 4.5 MiB |
BIN
wallpaper/lazarescu-alexandra-Yj1UOB_OabQ-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
wallpaper/luka-senica-m1MBGEk_-iM-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
wallpaper/manuel-cosentino-n--CMLApjfI-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
wallpaper/martin-katler-1GKb9gRpf5s-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 2.5 MiB |
BIN
wallpaper/mateusz-klein-c6cScqrXegw-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 4.5 MiB |
BIN
wallpaper/matt-alaniz-jbaxoX-sm8s-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 789 KiB |
BIN
wallpaper/matt-drenth-Bkw-aS2Nvg8-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
wallpaper/melanie-magdalena-C1wAQm_lQKM-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
wallpaper/mike-kotsch-xAgvgQpYsf4-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
wallpaper/milosz-roman-zJ9amrAopOE-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
wallpaper/nick-west-4M-5WBrG5-c-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 5.6 MiB |
BIN
wallpaper/pascal-debrunner-vwFvhJf6u_I-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 3.8 MiB |
BIN
wallpaper/pawel-czerwinski-Lki74Jj7H-U-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
wallpaper/polina-kuzovkova-uf2JJNgYp4A-unsplash.jpg
Normal file
|
After Width: | Height: | Size: 2.8 MiB |