Compare commits
11 Commits
2667fa7c6c
...
9797eff134
| Author | SHA1 | Date | |
|---|---|---|---|
|
9797eff134
|
|||
|
f235537289
|
|||
|
51839f4268
|
|||
|
26235cd05b
|
|||
|
5769ed0911
|
|||
|
451e6fe017
|
|||
|
cf5f432fc5
|
|||
|
86144349ab
|
|||
|
3dfed89e0b
|
|||
|
63c4dceff5
|
|||
|
291825429a
|
@ -115,6 +115,10 @@ rec {
|
|||||||
# Java:
|
# Java:
|
||||||
# gradle
|
# gradle
|
||||||
|
|
||||||
|
# Python:
|
||||||
|
# hatch
|
||||||
|
# py-spy
|
||||||
|
|
||||||
# Qt:
|
# Qt:
|
||||||
# qt6.wrapQtAppsHook # For the shellHook
|
# qt6.wrapQtAppsHook # For the shellHook
|
||||||
];
|
];
|
||||||
@ -203,6 +207,9 @@ rec {
|
|||||||
# QT imports to use with "qmlls -E"
|
# QT imports to use with "qmlls -E"
|
||||||
# QML_IMPORT_PATH = "${pkgs.qt6.full}/lib/qt-6/qml";
|
# QML_IMPORT_PATH = "${pkgs.qt6.full}/lib/qt-6/qml";
|
||||||
|
|
||||||
|
# Set PYTHONPATH
|
||||||
|
# PYTHONPATH = ".";
|
||||||
|
|
||||||
# =========================================================================================
|
# =========================================================================================
|
||||||
# Define shell environment
|
# Define shell environment
|
||||||
# =========================================================================================
|
# =========================================================================================
|
||||||
@ -264,6 +271,11 @@ rec {
|
|||||||
|
|
||||||
# Clojure:
|
# Clojure:
|
||||||
# abbr -a clojure-deps "deps-lock --lein"
|
# abbr -a clojure-deps "deps-lock --lein"
|
||||||
|
|
||||||
|
# Python:
|
||||||
|
# abbr -a run "python ./app/main.py"
|
||||||
|
# abbr -a profile "py-spy record -o profile.svg -- python ./app/main.py && firefox profile.svg"
|
||||||
|
# abbr -a ptop "py-spy top -- python ./app/main.py"
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
builtins.concatStringsSep "\n" [
|
builtins.concatStringsSep "\n" [
|
||||||
|
|||||||
84
flake.lock
generated
84
flake.lock
generated
@ -9,11 +9,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751041811,
|
"lastModified": 1751619699,
|
||||||
"narHash": "sha256-NGty9sYgiB5gSa1r0nN4vfaRZcARCQ5TgbpSAPq+umk=",
|
"narHash": "sha256-3Si+Gi0e8PDIzUrV6LYCUN21EvaQyPaOU64kF6KT824=",
|
||||||
"owner": "Aylur",
|
"owner": "Aylur",
|
||||||
"repo": "ags",
|
"repo": "ags",
|
||||||
"rev": "5ee4f3c40f47e12334187ba9305f7c80ee1543fa",
|
"rev": "e5e2efaf2e05e077190cfddabf5b827edae5ef8b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -104,11 +104,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751040887,
|
"lastModified": 1751126708,
|
||||||
"narHash": "sha256-fN0wK9vObApD6M0nBJFk687MLuobzO805hBkHM3eRAM=",
|
"narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=",
|
||||||
"owner": "aylur",
|
"owner": "aylur",
|
||||||
"repo": "astal",
|
"repo": "astal",
|
||||||
"rev": "71e88fcb57ea80b42efb7bff75a914e0b682059e",
|
"rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -143,11 +143,11 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751041558,
|
"lastModified": 1751735311,
|
||||||
"narHash": "sha256-uSfdzrgBAZweKqRfMcioRK1QxDz2mjc73MxVI+fbAGA=",
|
"narHash": "sha256-PvW5QG99yo1caA3YEMHuDHTDaa+kPo4VLqo3h48Ja6A=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "50a1de22af011ea05433453f29c445050c4a747c",
|
"rev": "ab81896fac2f4238718d42248af2cba678050963",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -341,11 +341,11 @@
|
|||||||
"gnim": {
|
"gnim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750803500,
|
"lastModified": 1751120710,
|
||||||
"narHash": "sha256-6eM7gaRneUW+Zzg6xZtz6dllaFtUNDVnYH+dPx6XYP4=",
|
"narHash": "sha256-sT1ILM8m1QG8CeMmqLHhW/8T/MzUq3JL9jO3V7FMa4w=",
|
||||||
"owner": "aylur",
|
"owner": "aylur",
|
||||||
"repo": "gnim",
|
"repo": "gnim",
|
||||||
"rev": "ab86c755d5c610999ab0ddcb0f4d60b1ccf5c9c6",
|
"rev": "5d2b734be452e2819f3a7313dbb34fa43c23e5d9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -356,11 +356,11 @@
|
|||||||
},
|
},
|
||||||
"hardware": {
|
"hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750837715,
|
"lastModified": 1751432711,
|
||||||
"narHash": "sha256-2m1ceZjbmgrJCZ2PuQZaK4in3gcg3o6rZ7WK6dr5vAA=",
|
"narHash": "sha256-136MeWtckSHTN9Z2WRNRdZ8oRP3vyx3L8UxeBYE+J9w=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "98236410ea0fe204d0447149537a924fb71a6d4f",
|
"rev": "497ae1357f1ac97f1aea31a4cb74ad0d534ef41f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -376,11 +376,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750973805,
|
"lastModified": 1751729568,
|
||||||
"narHash": "sha256-BZXgag7I0rnL/HMHAsBz3tQrfKAibpY2vovexl2lS+Y=",
|
"narHash": "sha256-ay7O1jjalUxkL23QWLv9C2s8rdVGs3hUOPZClIbUHKs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "080e8b48b0318b38143d5865de9334f46d51fce3",
|
"rev": "f117b383dd591fd579bce5ee7bac07a3fdc1d050",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1121,11 +1121,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750646418,
|
"lastModified": 1751274312,
|
||||||
"narHash": "sha256-4UAN+W0Lp4xnUiHYXUXAPX18t+bn6c4Btry2RqM9JHY=",
|
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1f426f65ac4e6bf808923eb6f8b8c2bfba3d18c5",
|
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1169,11 +1169,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750776420,
|
"lastModified": 1751637120,
|
||||||
"narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=",
|
"narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf",
|
"rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1206,11 +1206,11 @@
|
|||||||
"systems": "systems_4"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751053139,
|
"lastModified": 1751492444,
|
||||||
"narHash": "sha256-FMcWdec8fAXs7kiOQBsD+vA/RzjqoDz3zoYgPDQpZlA=",
|
"narHash": "sha256-26NgRXwhNM2x4hrok0C3CqSf2v0vi9byONNON5PzbHQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "c39f5f39c32e0a8fe91bff1cda847de7a0269411",
|
"rev": "239d331bb48673dfd00d7187654892471cd60d44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1247,15 +1247,14 @@
|
|||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751060810,
|
"lastModified": 1751736169,
|
||||||
"narHash": "sha256-8lU/u/LhfCr8/0SmQBsAMwtj3IrMgybSQzY3FzEYpwc=",
|
"narHash": "sha256-JTsW3PPda6YWT7dlNZP7wiNhRmZ9qG09aBzvpInDyQE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "539d77173dba7799eafe4b77f993e1ad7419c28e",
|
"rev": "179e95cda1a895ed05b22e8eba14fc61ce28ac2f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1413,27 +1412,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nur",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733222881,
|
|
||||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"v4l2loopback-pinned": {
|
"v4l2loopback-pinned": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748124733,
|
"lastModified": 1748124733,
|
||||||
|
|||||||
@ -39,8 +39,6 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
ags.enable = false; # TODO: Configure
|
|
||||||
|
|
||||||
chromium = {
|
chromium = {
|
||||||
enable = true;
|
enable = true;
|
||||||
google = false;
|
google = false;
|
||||||
@ -53,6 +51,8 @@ rec {
|
|||||||
font = "JetBrainsMono Nerd Font Mono";
|
font = "JetBrainsMono Nerd Font Mono";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
docs.enable = true;
|
||||||
|
|
||||||
firefox = {
|
firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wayland = true;
|
wayland = true;
|
||||||
@ -108,6 +108,7 @@ rec {
|
|||||||
"nextcloud --background"
|
"nextcloud --background"
|
||||||
"keepassxc"
|
"keepassxc"
|
||||||
"ferdium"
|
"ferdium"
|
||||||
|
"kdeconnect-indicator"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -205,7 +206,6 @@ rec {
|
|||||||
|
|
||||||
hyprpanel.enable = true;
|
hyprpanel.enable = true;
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
latex.enable = true;
|
|
||||||
|
|
||||||
neovim = {
|
neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -215,6 +215,8 @@ rec {
|
|||||||
|
|
||||||
nnn.enable = false;
|
nnn.enable = false;
|
||||||
|
|
||||||
|
rmpc.enable = true;
|
||||||
|
|
||||||
rofi = {
|
rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# theme = "Three-Bears";
|
# theme = "Three-Bears";
|
||||||
@ -281,6 +283,7 @@ rec {
|
|||||||
|
|
||||||
# Files to generate in the home directory are specified here.
|
# Files to generate in the home directory are specified here.
|
||||||
file = let
|
file = let
|
||||||
|
# NOTE: SSH public key
|
||||||
sshPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAoJac+GdGtzblCMA0lBfMdSR6aQ4YyovrNglCFGIny christoph.urlacher@protonmail.com";
|
sshPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAoJac+GdGtzblCMA0lBfMdSR6aQ4YyovrNglCFGIny christoph.urlacher@protonmail.com";
|
||||||
in {
|
in {
|
||||||
# Generate a list of installed user packages in ~/.local/share/current-user-packages
|
# Generate a list of installed user packages in ~/.local/share/current-user-packages
|
||||||
@ -355,10 +358,12 @@ rec {
|
|||||||
lm_sensors # Readout hardware sensors
|
lm_sensors # Readout hardware sensors
|
||||||
acpica-tools # Dump ACPI tables etc.
|
acpica-tools # Dump ACPI tables etc.
|
||||||
|
|
||||||
# Video/Image utils
|
# Video/Image/Audio utils
|
||||||
ffmpeg_7-full # I love ffmpeg (including ffplay)
|
ffmpeg_7-full # I love ffmpeg (including ffplay)
|
||||||
ffmpeg-normalize # Normalize audio
|
ffmpeg-normalize # Normalize audio
|
||||||
imagemagick # Convert image (magic)
|
imagemagick # Convert image (magic)
|
||||||
|
mp3val # Validate mp3 files
|
||||||
|
flac # Validate flac files
|
||||||
|
|
||||||
# Document utils
|
# Document utils
|
||||||
poppler_utils # pdfunite
|
poppler_utils # pdfunite
|
||||||
@ -458,6 +463,64 @@ rec {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Music taggins and mpd stats collection
|
||||||
|
beets = {
|
||||||
|
enable = true;
|
||||||
|
mpdIntegration = {
|
||||||
|
host = "127.0.0.1";
|
||||||
|
port = config.services.mpd.network.port;
|
||||||
|
enableUpdate = true;
|
||||||
|
enableStats = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://beets.readthedocs.io/en/stable/reference/config.html
|
||||||
|
settings = {
|
||||||
|
directory = "${home.homeDirectory}/Music";
|
||||||
|
threaded = "yes";
|
||||||
|
art_filename = "cover";
|
||||||
|
|
||||||
|
ui = {
|
||||||
|
color = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
|
import = {
|
||||||
|
write = "yes"; # Write metadata to files
|
||||||
|
copy = "yes"; # Move files to the music directory when importing
|
||||||
|
log = "${home.homeDirectory}/Music/.beetslog.txt";
|
||||||
|
};
|
||||||
|
|
||||||
|
paths = {
|
||||||
|
default = "$albumartist/$albumartist - $album/$track $title";
|
||||||
|
singleton = "$arist/0 Singles/$artist - $title"; # Single songs
|
||||||
|
comp = "1 Various Arists/$album/$track $title";
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins = [
|
||||||
|
"badfiles" # check audio file integrity
|
||||||
|
"duplicates"
|
||||||
|
"fetchart" # pickup local cover art or search online
|
||||||
|
"fish" # beet fish generates ~/.config/fish/completions file
|
||||||
|
"lyrics" # fetch song lyrics
|
||||||
|
"replaygain" # write replaygain tags for automatic loudness adjustments
|
||||||
|
];
|
||||||
|
|
||||||
|
fetchart = {
|
||||||
|
auto = "yes";
|
||||||
|
sources = "filesystem coverart itunes amazon albumart"; # sources are queried in this order
|
||||||
|
};
|
||||||
|
|
||||||
|
lyrics = {
|
||||||
|
synced = "yes"; # prefer synced lyrics if provided
|
||||||
|
};
|
||||||
|
|
||||||
|
replaygain = {
|
||||||
|
auto = "yes"; # analyze on import automatically
|
||||||
|
backend = "ffmpeg";
|
||||||
|
overwrite = true; # re-analyze files with existing replaygain tags on import
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
btop.enable = true;
|
btop.enable = true;
|
||||||
|
|
||||||
direnv = {
|
direnv = {
|
||||||
@ -621,6 +684,7 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nushell.enable = false;
|
nushell.enable = false;
|
||||||
|
|
||||||
ssh = {
|
ssh = {
|
||||||
enable = true; # NOTE: Do NOT generate .ssh/config using HM, as it will have invalid permissions!
|
enable = true; # NOTE: Do NOT generate .ssh/config using HM, as it will have invalid permissions!
|
||||||
compression = true;
|
compression = true;
|
||||||
@ -873,7 +937,63 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
# kdeconnect.enable = true; # Note: This does not setup the firewall at all
|
kdeconnect.enable = nixosConfig.programs.kdeconnect.enable; # Only the system package sets up the firewall
|
||||||
|
|
||||||
|
mpd = {
|
||||||
|
enable = true;
|
||||||
|
dataDir = "${home.homeDirectory}/Music/.mpd";
|
||||||
|
musicDirectory = "${home.homeDirectory}/Music";
|
||||||
|
network = {
|
||||||
|
listenAddress = "127.0.0.1"; # Listen on all addresses: "any"
|
||||||
|
port = 6600;
|
||||||
|
};
|
||||||
|
extraArgs = ["--verbose"];
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
# Refresh the database whenever files in the musicDirectory change
|
||||||
|
auto_update "yes"
|
||||||
|
|
||||||
|
# Don't start playback after startup
|
||||||
|
restore_paused "yes"
|
||||||
|
|
||||||
|
# Use track tags on shuffle and album tags on album play
|
||||||
|
replaygain "auto"
|
||||||
|
|
||||||
|
# PipeWire main output
|
||||||
|
audio_output {
|
||||||
|
type "pipewire"
|
||||||
|
name "PipeWire Sound Server"
|
||||||
|
|
||||||
|
mixer_type "hardware"
|
||||||
|
|
||||||
|
# Use hardware mixer instead of software volume filter (replaygain_handler "software")
|
||||||
|
replay_gain_handler "mixer"
|
||||||
|
}
|
||||||
|
|
||||||
|
# FiFo output for cava visualization
|
||||||
|
audio_output {
|
||||||
|
type "fifo"
|
||||||
|
name "my_fifo"
|
||||||
|
path "/tmp/mpd.fifo"
|
||||||
|
format "44100:16:2"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pre-cache 1GB of the queue
|
||||||
|
# input_cache {
|
||||||
|
# size "1 GB"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# follow_outside_symlinks "no" # If mpd should follow symlinks pointing outside the musicDirectory
|
||||||
|
# follow_inside_symlinks "yes" # If mpd should follow symlinks pointing inside the musicDirectory
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# MPD integration with mpris (used by player-ctl).
|
||||||
|
# We want to use mpris as it also supports other players (e.g. Spotify) or browsers.
|
||||||
|
mpd-mpris = {
|
||||||
|
enable = true;
|
||||||
|
mpd.useLocal = true;
|
||||||
|
};
|
||||||
|
|
||||||
flatpak = {
|
flatpak = {
|
||||||
# FlatHub stable is only added by default if no custom remotes are specified
|
# FlatHub stable is only added by default if no custom remotes are specified
|
||||||
|
|||||||
14
home/modules/1_deprecated/ags/config/tsconfig.json
Normal file
14
home/modules/1_deprecated/ags/config/tsconfig.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
|
"compilerOptions": {
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"strict": true,
|
||||||
|
"target": "ES2022",
|
||||||
|
"module": "ES2022",
|
||||||
|
"moduleResolution": "Bundler",
|
||||||
|
// "checkJs": true,
|
||||||
|
// "allowJs": true,
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"jsxImportSource": "astal/gtk4",
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -3,18 +3,18 @@
|
|||||||
# Obsolete modules are kept in "1_deprecated" for reference.
|
# Obsolete modules are kept in "1_deprecated" for reference.
|
||||||
|
|
||||||
# My own HM modules
|
# My own HM modules
|
||||||
./ags
|
|
||||||
./chromium
|
./chromium
|
||||||
./color
|
./color
|
||||||
|
./docs
|
||||||
./firefox
|
./firefox
|
||||||
./fish
|
./fish
|
||||||
./hyprland
|
./hyprland
|
||||||
./hyprpanel
|
./hyprpanel
|
||||||
./kitty
|
./kitty
|
||||||
./latex
|
|
||||||
./neovim
|
./neovim
|
||||||
./nnn
|
./nnn
|
||||||
./paths
|
./paths
|
||||||
|
./rmpc
|
||||||
./rofi
|
./rofi
|
||||||
./waybar
|
./waybar
|
||||||
./zathura
|
./zathura
|
||||||
|
|||||||
@ -5,11 +5,11 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) latex;
|
inherit (config.modules) docs;
|
||||||
in {
|
in {
|
||||||
options.modules.latex = import ./options.nix {inherit lib mylib;};
|
options.modules.docs = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf latex.enable {
|
config = lib.mkIf docs.enable {
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
texliveFull
|
texliveFull
|
||||||
9
home/modules/docs/options.nix
Normal file
9
home/modules/docs/options.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with mylib.modules; {
|
||||||
|
enable = mkEnableOption "Enable Document Support (e.g. LaTeX)";
|
||||||
|
}
|
||||||
@ -125,7 +125,7 @@ in {
|
|||||||
don-t-fuck-with-paste
|
don-t-fuck-with-paste
|
||||||
enhancer-for-youtube
|
enhancer-for-youtube
|
||||||
fastforwardteam # skip URL shorteners
|
fastforwardteam # skip URL shorteners
|
||||||
faststream # replace video players with a faster one
|
# faststream # replace video players with a faster one
|
||||||
frankerfacez # twitch emotes
|
frankerfacez # twitch emotes
|
||||||
indie-wiki-buddy
|
indie-wiki-buddy
|
||||||
keepassxc-browser
|
keepassxc-browser
|
||||||
|
|||||||
@ -475,6 +475,9 @@ in {
|
|||||||
disable_hyprland_logo = true;
|
disable_hyprland_logo = true;
|
||||||
force_default_wallpaper = 0;
|
force_default_wallpaper = 0;
|
||||||
|
|
||||||
|
# Say no to the "Application not responding" window
|
||||||
|
enable_anr_dialog = false;
|
||||||
|
|
||||||
disable_splash_rendering = true;
|
disable_splash_rendering = true;
|
||||||
font_family = "${color.font}";
|
font_family = "${color.font}";
|
||||||
};
|
};
|
||||||
|
|||||||
361
home/modules/rmpc/default.nix
Normal file
361
home/modules/rmpc/default.nix
Normal file
@ -0,0 +1,361 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
nixosConfig,
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (config.modules) rmpc;
|
||||||
|
in {
|
||||||
|
options.modules.rmpc = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
|
config = lib.mkIf rmpc.enable {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = config.services.mpd.enable;
|
||||||
|
message = "Enabling rmpc requires mpd!";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.rmpc.enable = true;
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".config/rmpc/config.ron".text = ''
|
||||||
|
#![enable(implicit_some)]
|
||||||
|
#![enable(unwrap_newtypes)]
|
||||||
|
#![enable(unwrap_variant_newtypes)]
|
||||||
|
(
|
||||||
|
address: "127.0.0.1:${builtins.toString config.services.mpd.network.port}",
|
||||||
|
password: None,
|
||||||
|
theme: "chriphost",
|
||||||
|
cache_dir: None,
|
||||||
|
on_song_change: None,
|
||||||
|
volume_step: 5,
|
||||||
|
max_fps: 30,
|
||||||
|
scrolloff: 0,
|
||||||
|
wrap_navigation: false,
|
||||||
|
enable_mouse: true,
|
||||||
|
enable_config_hot_reload: true,
|
||||||
|
status_update_interval_ms: 1000,
|
||||||
|
rewind_to_start_sec: 30,
|
||||||
|
|
||||||
|
// Keep this on false, otherwise queue changes will be applied to the current playlist
|
||||||
|
reflect_changes_to_playlist: false,
|
||||||
|
|
||||||
|
select_current_song_on_change: false,
|
||||||
|
browser_song_sort: [Disc, Track, Artist, Title],
|
||||||
|
directories_sort: SortFormat(group_by_type: true, reverse: false),
|
||||||
|
album_art: (
|
||||||
|
method: Auto,
|
||||||
|
max_size_px: (width: 1200, height: 1200),
|
||||||
|
disabled_protocols: ["http://", "https://"],
|
||||||
|
vertical_align: Center,
|
||||||
|
horizontal_align: Center,
|
||||||
|
),
|
||||||
|
keybinds: (
|
||||||
|
global: {
|
||||||
|
":": CommandMode,
|
||||||
|
",": VolumeDown,
|
||||||
|
"s": Stop,
|
||||||
|
".": VolumeUp,
|
||||||
|
"<Tab>": NextTab,
|
||||||
|
"<S-Tab>": PreviousTab,
|
||||||
|
"1": SwitchToTab("Queue"),
|
||||||
|
"2": SwitchToTab("Directories"),
|
||||||
|
"3": SwitchToTab("Artists"),
|
||||||
|
"4": SwitchToTab("Album Artists"),
|
||||||
|
"5": SwitchToTab("Albums"),
|
||||||
|
"6": SwitchToTab("Playlists"),
|
||||||
|
"7": SwitchToTab("Search"),
|
||||||
|
"q": Quit,
|
||||||
|
">": NextTrack,
|
||||||
|
"p": TogglePause,
|
||||||
|
"<": PreviousTrack,
|
||||||
|
"f": SeekForward,
|
||||||
|
"z": ToggleRepeat,
|
||||||
|
"x": ToggleRandom,
|
||||||
|
"c": ToggleConsume,
|
||||||
|
"v": ToggleSingle,
|
||||||
|
"b": SeekBack,
|
||||||
|
"~": ShowHelp,
|
||||||
|
"u": Update,
|
||||||
|
"U": Rescan,
|
||||||
|
"I": ShowCurrentSongInfo,
|
||||||
|
"O": ShowOutputs,
|
||||||
|
"P": ShowDecoders,
|
||||||
|
"R": AddRandom,
|
||||||
|
},
|
||||||
|
navigation: {
|
||||||
|
"k": Up,
|
||||||
|
"j": Down,
|
||||||
|
"h": Left,
|
||||||
|
"l": Right,
|
||||||
|
"<Up>": Up,
|
||||||
|
"<Down>": Down,
|
||||||
|
"<Left>": Left,
|
||||||
|
"<Right>": Right,
|
||||||
|
"<C-k>": PaneUp,
|
||||||
|
"<C-j>": PaneDown,
|
||||||
|
"<C-h>": PaneLeft,
|
||||||
|
"<C-l>": PaneRight,
|
||||||
|
"<C-u>": UpHalf,
|
||||||
|
"N": PreviousResult,
|
||||||
|
"a": Add,
|
||||||
|
"A": AddAll,
|
||||||
|
"r": Rename,
|
||||||
|
"n": NextResult,
|
||||||
|
"g": Top,
|
||||||
|
"<Space>": Select,
|
||||||
|
"<C-Space>": InvertSelection,
|
||||||
|
"G": Bottom,
|
||||||
|
"<CR>": Confirm,
|
||||||
|
"i": FocusInput,
|
||||||
|
"J": MoveDown,
|
||||||
|
"<C-d>": DownHalf,
|
||||||
|
"/": EnterSearch,
|
||||||
|
"<C-c>": Close,
|
||||||
|
"<Esc>": Close,
|
||||||
|
"K": MoveUp,
|
||||||
|
"D": Delete,
|
||||||
|
"B": ShowInfo,
|
||||||
|
},
|
||||||
|
queue: {
|
||||||
|
"D": DeleteAll,
|
||||||
|
"<CR>": Play,
|
||||||
|
"<C-s>": Save,
|
||||||
|
"a": AddToPlaylist,
|
||||||
|
"d": Delete,
|
||||||
|
"C": JumpToCurrent,
|
||||||
|
"X": Shuffle,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
search: (
|
||||||
|
case_sensitive: false,
|
||||||
|
mode: Contains,
|
||||||
|
tags: [
|
||||||
|
(value: "any", label: "Any Tag"),
|
||||||
|
(value: "artist", label: "Artist"),
|
||||||
|
(value: "album", label: "Album"),
|
||||||
|
(value: "albumartist", label: "Album Artist"),
|
||||||
|
(value: "title", label: "Title"),
|
||||||
|
(value: "filename", label: "Filename"),
|
||||||
|
(value: "genre", label: "Genre"),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
artists: (
|
||||||
|
album_display_mode: SplitByDate,
|
||||||
|
album_sort_by: Date,
|
||||||
|
),
|
||||||
|
tabs: [
|
||||||
|
(
|
||||||
|
name: "Queue",
|
||||||
|
pane: Split(
|
||||||
|
direction: Horizontal,
|
||||||
|
panes: [(size: "40%", pane: Pane(AlbumArt)), (size: "60%", pane: Pane(Queue))],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Directories",
|
||||||
|
pane: Pane(Directories),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Artists",
|
||||||
|
pane: Pane(Artists),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Album Artists",
|
||||||
|
pane: Pane(AlbumArtists),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Albums",
|
||||||
|
pane: Pane(Albums),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Playlists",
|
||||||
|
pane: Pane(Playlists),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Search",
|
||||||
|
pane: Pane(Search),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
|
||||||
|
".config/rmpc/themes/chriphost.ron".text = ''
|
||||||
|
#![enable(implicit_some)]
|
||||||
|
#![enable(unwrap_newtypes)]
|
||||||
|
#![enable(unwrap_variant_newtypes)]
|
||||||
|
(
|
||||||
|
default_album_art_path: None,
|
||||||
|
show_song_table_header: true,
|
||||||
|
draw_borders: true,
|
||||||
|
format_tag_separator: " | ",
|
||||||
|
browser_column_widths: [20, 38, 42],
|
||||||
|
background_color: None,
|
||||||
|
text_color: None,
|
||||||
|
header_background_color: None,
|
||||||
|
modal_background_color: None,
|
||||||
|
modal_backdrop: false,
|
||||||
|
preview_label_style: (fg: "yellow"),
|
||||||
|
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
|
||||||
|
tab_bar: (
|
||||||
|
enabled: true,
|
||||||
|
active_style: (fg: "black", bg: "blue", modifiers: "Bold"),
|
||||||
|
inactive_style: (),
|
||||||
|
),
|
||||||
|
highlighted_item_style: (fg: "blue", modifiers: "Bold"),
|
||||||
|
current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
|
||||||
|
borders_style: (fg: "blue"),
|
||||||
|
highlight_border_style: (fg: "blue"),
|
||||||
|
symbols: (
|
||||||
|
song: "S",
|
||||||
|
dir: "D",
|
||||||
|
playlist: "P",
|
||||||
|
marker: "M",
|
||||||
|
ellipsis: "...",
|
||||||
|
song_style: None,
|
||||||
|
dir_style: None,
|
||||||
|
playlist_style: None,
|
||||||
|
),
|
||||||
|
level_styles: (
|
||||||
|
info: (fg: "blue", bg: "black"),
|
||||||
|
warn: (fg: "yellow", bg: "black"),
|
||||||
|
error: (fg: "red", bg: "black"),
|
||||||
|
debug: (fg: "light_green", bg: "black"),
|
||||||
|
trace: (fg: "magenta", bg: "black"),
|
||||||
|
),
|
||||||
|
progress_bar: (
|
||||||
|
symbols: ["[", "-", ">", " ", "]"],
|
||||||
|
track_style: (fg: "#1e2030"),
|
||||||
|
elapsed_style: (fg: "blue"),
|
||||||
|
thumb_style: (fg: "blue", bg: "#1e2030"),
|
||||||
|
),
|
||||||
|
scrollbar: (
|
||||||
|
symbols: ["│", "█", "▲", "▼"],
|
||||||
|
track_style: (),
|
||||||
|
ends_style: (),
|
||||||
|
thumb_style: (fg: "blue"),
|
||||||
|
),
|
||||||
|
song_table_format: [
|
||||||
|
(
|
||||||
|
prop: (kind: Property(Artist),
|
||||||
|
default: (kind: Text("Unknown"))
|
||||||
|
),
|
||||||
|
width: "20%",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
prop: (kind: Property(Title),
|
||||||
|
default: (kind: Text("Unknown"))
|
||||||
|
),
|
||||||
|
width: "35%",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
prop: (kind: Property(Album), style: (fg: "white"),
|
||||||
|
default: (kind: Text("Unknown Album"), style: (fg: "white"))
|
||||||
|
),
|
||||||
|
width: "30%",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
prop: (kind: Property(Duration),
|
||||||
|
default: (kind: Text("-"))
|
||||||
|
),
|
||||||
|
width: "15%",
|
||||||
|
alignment: Right,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
components: {},
|
||||||
|
layout: Split(
|
||||||
|
direction: Vertical,
|
||||||
|
panes: [
|
||||||
|
(
|
||||||
|
pane: Pane(Header),
|
||||||
|
size: "2",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
pane: Pane(Tabs),
|
||||||
|
size: "3",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
pane: Pane(TabContent),
|
||||||
|
size: "100%",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
pane: Pane(ProgressBar),
|
||||||
|
size: "1",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
header: (
|
||||||
|
rows: [
|
||||||
|
(
|
||||||
|
left: [
|
||||||
|
(kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
|
||||||
|
(kind: Property(Status(StateV2(playing_label: "Playing", paused_label: "Paused", stopped_label: "Stopped"))), style: (fg: "yellow", modifiers: "Bold")),
|
||||||
|
(kind: Text("]"), style: (fg: "yellow", modifiers: "Bold"))
|
||||||
|
],
|
||||||
|
center: [
|
||||||
|
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
|
||||||
|
default: (kind: Text("No Song"), style: (modifiers: "Bold"))
|
||||||
|
)
|
||||||
|
],
|
||||||
|
right: [
|
||||||
|
(kind: Property(Widget(ScanStatus)), style: (fg: "blue")),
|
||||||
|
(kind: Property(Widget(Volume)), style: (fg: "blue"))
|
||||||
|
]
|
||||||
|
),
|
||||||
|
(
|
||||||
|
left: [
|
||||||
|
(kind: Property(Status(Elapsed))),
|
||||||
|
(kind: Text(" / ")),
|
||||||
|
(kind: Property(Status(Duration))),
|
||||||
|
(kind: Text(" (")),
|
||||||
|
(kind: Property(Status(Bitrate))),
|
||||||
|
(kind: Text(" kbps)"))
|
||||||
|
],
|
||||||
|
center: [
|
||||||
|
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
|
||||||
|
default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))
|
||||||
|
),
|
||||||
|
(kind: Text(" - ")),
|
||||||
|
(kind: Property(Song(Album)),
|
||||||
|
default: (kind: Text("Unknown Album"))
|
||||||
|
)
|
||||||
|
],
|
||||||
|
right: [
|
||||||
|
(
|
||||||
|
kind: Property(Widget(States(
|
||||||
|
active_style: (fg: "white", modifiers: "Bold"),
|
||||||
|
separator_style: (fg: "white")))
|
||||||
|
),
|
||||||
|
style: (fg: "dark_gray")
|
||||||
|
),
|
||||||
|
]
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
browser_song_format: [
|
||||||
|
(
|
||||||
|
kind: Group([
|
||||||
|
(kind: Property(Track)),
|
||||||
|
(kind: Text(" ")),
|
||||||
|
])
|
||||||
|
),
|
||||||
|
(
|
||||||
|
kind: Group([
|
||||||
|
(kind: Property(Artist)),
|
||||||
|
(kind: Text(" - ")),
|
||||||
|
(kind: Property(Title)),
|
||||||
|
]),
|
||||||
|
default: (kind: Property(Filename))
|
||||||
|
),
|
||||||
|
],
|
||||||
|
lyrics: (
|
||||||
|
timestamp: false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOption "Enable LaTeX";
|
enable = mkEnableOption "rmpc";
|
||||||
}
|
}
|
||||||
@ -430,7 +430,7 @@ with mylib.networking; {
|
|||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
|
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
kdeconnect.enable = false; # Use this instead of HM for firewall setup
|
kdeconnect.enable = true; # Use this instead of HM for firewall setup
|
||||||
neovim.enable = true;
|
neovim.enable = true;
|
||||||
starship.enable = true;
|
starship.enable = true;
|
||||||
# pay-respects.enable = true; # The new fuck
|
# pay-respects.enable = true; # The new fuck
|
||||||
|
|||||||
Reference in New Issue
Block a user