cleanup code, migrate to modules + start rewriting ddt4all derivation
This commit is contained in:
parent
cfd21c973d
commit
f5f2478422
5
TODO.md
5
TODO.md
@ -1,4 +1,5 @@
|
|||||||
* [ ] Simplify config
|
* [ ] Simplify config
|
||||||
* [ ] Organize most common apps with modules
|
* [x] Organize most common apps with modules
|
||||||
* [ ] Migrate from pywal + apple-fonts to Stylix (theme, cursor, fonts, ...)
|
* [ ] Migrate from pywal + apple-fonts to Stylix (theme, cursor, fonts, ...)
|
||||||
* [ ] Remove clutter
|
* [x] Remove clutter
|
||||||
|
* [ ] Fix DDT4ALL derivation/shell
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
{ pkgs, stdenv, fetchFromGitHub }:
|
|
||||||
|
|
||||||
let
|
|
||||||
python = pkgs.python3.withPackages (pkgs: with pkgs; [ pyqt5 pyqtwebengine pyusb crcmod pyserial ]);
|
|
||||||
in stdenv.mkDerivation rec {
|
|
||||||
pname = "ddt4all";
|
|
||||||
version = "1.0.0";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "cedricp";
|
|
||||||
repo = "ddt4all";
|
|
||||||
rev = "master";
|
|
||||||
sha256 = "sha256-1D1fnnFWxBV6sZkfbBc7a/7DSZvZtXeEYM9fRsQ7Ag0=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
python
|
|
||||||
pkgs.libsForQt5.qt5.wrapQtAppsHook
|
|
||||||
pkgs.libsForQt5.qt5.qttools
|
|
||||||
pkgs.which
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
|
||||||
python
|
|
||||||
pkgs.libsForQt5.qt5.qtbase
|
|
||||||
pkgs.libsForQt5.qt5.qttools
|
|
||||||
];
|
|
||||||
|
|
||||||
configurePhase = ''
|
|
||||||
runHook preConfigure
|
|
||||||
wrapQtAppsHook
|
|
||||||
runHook postConfigure
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = "";
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp -r * $out/
|
|
||||||
ln -s $out/main.py $out/bin/ddt4all
|
|
||||||
'';
|
|
||||||
}
|
|
15
flake.nix
15
flake.nix
@ -16,7 +16,20 @@
|
|||||||
fingerprint-sensor.inputs.nixpkgs.follows = "nixpkgs";
|
fingerprint-sensor.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, ... }: {
|
outputs = { self, nixpkgs, ... }: let
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs [
|
||||||
|
"aarch64-linux"
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
];
|
||||||
|
in {
|
||||||
nixosConfigurations = import ./hosts { inherit self; };
|
nixosConfigurations = import ./hosts { inherit self; };
|
||||||
|
devShells = forAllSystems ( system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in {
|
||||||
|
ddt4all = import ./shells/ddt4all.nix { inherit pkgs; };
|
||||||
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,21 +2,29 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
inherit (self) inputs;
|
inherit (self) inputs;
|
||||||
system = "x86_64-linux";
|
|
||||||
homeDir = self + /profiles;
|
homeDir = self + /profiles;
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
|
||||||
mkSystem = pkgs: hostname:
|
mkSystem = {
|
||||||
pkgs.lib.nixosSystem {
|
system,
|
||||||
specialArgs = {
|
hostname,
|
||||||
inherit inputs;
|
useHomeManager ? true,
|
||||||
};
|
modules ? []
|
||||||
modules = [
|
}: inputs.nixpkgs.lib.nixosSystem {
|
||||||
./base-configuration.nix
|
specialArgs = { inherit inputs; };
|
||||||
./${hostname}
|
modules = [
|
||||||
homeDir
|
./base-configuration.nix
|
||||||
inputs.home-manager.nixosModules.home-manager
|
./${hostname}
|
||||||
];
|
homeDir
|
||||||
};
|
] ++ (
|
||||||
|
if useHomeManager then
|
||||||
|
[ inputs.home-manager.nixosModules.home-manager ]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
) ++ modules;
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
hulk = mkSystem inputs.nixpkgs "hulk";
|
hulk = mkSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
hostname = "hulk";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
77
modules/home-manager/fish.nix
Normal file
77
modules/home-manager/fish.nix
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.modules.fish = {
|
||||||
|
enable = lib.mkEnableOption "Fish integration";
|
||||||
|
enableDefaultAliases = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Enable default aliases and abbreviations";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableStarship = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Enable Starship prompt";
|
||||||
|
};
|
||||||
|
|
||||||
|
functions = lib.mkOption {
|
||||||
|
type = with lib.types; attrsOf str;
|
||||||
|
description = "Fish function definitions";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.modules.fish.enable {
|
||||||
|
programs.nix-index = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.starship = lib.mkIf config.modules.fish.enableStarship {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
set fish_greeting
|
||||||
|
cat ~/.cache/wal/sequences
|
||||||
|
'';
|
||||||
|
|
||||||
|
shellAliases = lib.mkIf config.modules.fish.enableDefaultAliases {
|
||||||
|
".." = "cd ..";
|
||||||
|
"..." = "cd ../..";
|
||||||
|
"...." = "cd ../../../";
|
||||||
|
"....." = "cd ../../../../";
|
||||||
|
|
||||||
|
"cp" = "cp -v";
|
||||||
|
"ddf" = "df -h";
|
||||||
|
"etc" = "erd -H";
|
||||||
|
"mkdir" = "mkdir -p";
|
||||||
|
"mv" = "mv -v";
|
||||||
|
"rm" = "rm -v";
|
||||||
|
"rr" = "rm -rf";
|
||||||
|
|
||||||
|
"neofetch" = "fastfetch";
|
||||||
|
};
|
||||||
|
|
||||||
|
shellAbbrs = lib.mkIf config.modules.fish.enableDefaultAliases {
|
||||||
|
gaa = "git add -A";
|
||||||
|
ga = "git add";
|
||||||
|
gbd = "git branch --delete";
|
||||||
|
gb = "git branch";
|
||||||
|
gc = "git commit";
|
||||||
|
gcm = "git commit -m";
|
||||||
|
gcob = "git checkout -b";
|
||||||
|
gco = "git checkout";
|
||||||
|
gd = "git diff";
|
||||||
|
gl = "git log";
|
||||||
|
gp = "git push";
|
||||||
|
gs = "git status";
|
||||||
|
};
|
||||||
|
|
||||||
|
functions = config.modules.fish.functions;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,6 +1,5 @@
|
|||||||
{ self, impurity, inputs, ... }: {
|
{ self, impurity, inputs, ... }: {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
verbose = true;
|
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
backupFileExtension = "bak";
|
backupFileExtension = "bak";
|
||||||
|
32
profiles/hulk/fish-functions.nix
Normal file
32
profiles/hulk/fish-functions.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
webcopy = ''
|
||||||
|
set -l domain (string trim $argv)
|
||||||
|
get --recursive \
|
||||||
|
--level 5 \
|
||||||
|
--no-clobber \
|
||||||
|
--page-requisites \
|
||||||
|
--adjust-extension \
|
||||||
|
--span-hosts \
|
||||||
|
--convert-links \
|
||||||
|
--domains $domain \
|
||||||
|
--no-parent \
|
||||||
|
$domain
|
||||||
|
'';
|
||||||
|
|
||||||
|
venv = ''
|
||||||
|
if [ -d .venv ]; then
|
||||||
|
source .venv/bin/activate.fish
|
||||||
|
else
|
||||||
|
python -m venv .venv
|
||||||
|
source .venv/bin/activate.fish
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
|
thunderbird = ''
|
||||||
|
if pgrep -x birdtray > /dev/null
|
||||||
|
birdtray -s
|
||||||
|
else
|
||||||
|
birdtray &
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
}
|
@ -1,77 +0,0 @@
|
|||||||
{
|
|
||||||
imports = [
|
|
||||||
./starship.nix
|
|
||||||
./nix-index.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
interactiveShellInit = ''
|
|
||||||
set fish_greeting
|
|
||||||
cat ~/.cache/wal/sequences
|
|
||||||
'';
|
|
||||||
shellAliases = {
|
|
||||||
".." = "cd ..";
|
|
||||||
"..." = "cd ../..";
|
|
||||||
"...." = "cd ../../../";
|
|
||||||
"....." = "cd ../../../../";
|
|
||||||
|
|
||||||
"cp" = "cp -v";
|
|
||||||
"ddf" = "df -h";
|
|
||||||
"etc" = "erd -H";
|
|
||||||
"mkdir" = "mkdir -p";
|
|
||||||
"mv" = "mv -v";
|
|
||||||
"rm" = "rm -v";
|
|
||||||
"rr" = "rm -rf";
|
|
||||||
|
|
||||||
"neofetch" = "fastfetch";
|
|
||||||
};
|
|
||||||
|
|
||||||
shellAbbrs = {
|
|
||||||
gaa = "git add -A";
|
|
||||||
ga = "git add";
|
|
||||||
gbd = "git branch --delete";
|
|
||||||
gb = "git branch";
|
|
||||||
gc = "git commit";
|
|
||||||
gcm = "git commit -m";
|
|
||||||
gcob = "git checkout -b";
|
|
||||||
gco = "git checkout";
|
|
||||||
gd = "git diff";
|
|
||||||
gl = "git log";
|
|
||||||
gp = "git push";
|
|
||||||
gs = "git status";
|
|
||||||
};
|
|
||||||
|
|
||||||
functions = {
|
|
||||||
webcopy = ''
|
|
||||||
function webcopy
|
|
||||||
set -l domain (string trim $argv)
|
|
||||||
wget --recursive \
|
|
||||||
--level 5 \
|
|
||||||
--no-clobber \
|
|
||||||
--page-requisites \
|
|
||||||
--adjust-extension \
|
|
||||||
--span-hosts \
|
|
||||||
--convert-links \
|
|
||||||
--domains $domain \
|
|
||||||
--no-parent \
|
|
||||||
$domain
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
|
|
||||||
venv = ''
|
|
||||||
function venv
|
|
||||||
source .venv/bin/activate.fish
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
|
|
||||||
thunderbird = ''
|
|
||||||
if pgrep -x birdtray > /dev/null
|
|
||||||
birdtray -s
|
|
||||||
else
|
|
||||||
birdtray &
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nix-index = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
programs.starship = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,17 +1,6 @@
|
|||||||
{ pkgs, inputs, ... }:
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../../modules/home-manager/darkman.nix
|
|
||||||
inputs.ags.homeManagerModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
modules.darkman = {
|
|
||||||
enable = true;
|
|
||||||
customLightModeScript = "$HOME/.config/hypr/scripts/random-wallpaper.sh";
|
|
||||||
customDarkModeScript = "$HOME/.config/hypr/scripts/random-wallpaper.sh";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
pywal pywalfox-native
|
pywal pywalfox-native
|
||||||
|
|
||||||
@ -20,7 +9,6 @@
|
|||||||
]))
|
]))
|
||||||
|
|
||||||
inputs.nordvpn.packages.${system}.nordvpn
|
inputs.nordvpn.packages.${system}.nordvpn
|
||||||
(pkgs.callPackage ../../derivations/ddt4all.nix {})
|
|
||||||
|
|
||||||
(birdtray.overrideAttrs (_: {
|
(birdtray.overrideAttrs (_: {
|
||||||
cmakeFlags = [ "-DOPT_THUNDERBIRD_CMDLINE=${thunderbird}/bin/thunderbird" ];
|
cmakeFlags = [ "-DOPT_THUNDERBIRD_CMDLINE=${thunderbird}/bin/thunderbird" ];
|
||||||
|
@ -1,8 +1,24 @@
|
|||||||
{ inputs, pkgs, ... }:
|
{ inputs, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ ./fish ];
|
imports = [
|
||||||
|
../../modules/home-manager/darkman.nix
|
||||||
|
../../modules/home-manager/fish.nix
|
||||||
|
inputs.ags.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
modules.darkman = {
|
||||||
|
enable = true;
|
||||||
|
customLightModeScript = "$HOME/.config/hypr/scripts/random-wallpaper.sh";
|
||||||
|
customDarkModeScript = "$HOME/.config/hypr/scripts/random-wallpaper.sh";
|
||||||
|
};
|
||||||
|
|
||||||
|
modules.fish = {
|
||||||
|
enable = true;
|
||||||
|
enableStarship = true;
|
||||||
|
functions = import ./fish-functions.nix;
|
||||||
|
};
|
||||||
|
|
||||||
programs.pywal.enable = true;
|
programs.pywal.enable = true;
|
||||||
programs.ags = {
|
programs.ags = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -21,40 +37,8 @@
|
|||||||
#advanced-scene-switcher
|
#advanced-scene-switcher
|
||||||
obs-tuna
|
obs-tuna
|
||||||
obs-move-transition
|
obs-move-transition
|
||||||
droidcam-obs
|
|
||||||
waveform
|
waveform
|
||||||
wlrobs
|
wlrobs
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.darkman = {
|
|
||||||
enable = true;
|
|
||||||
darkModeScripts = {
|
|
||||||
theme = ''
|
|
||||||
${pkgs.dconf}/bin/dconf write\
|
|
||||||
/org/gnome/desktop/interface/color-scheme "'prefer-dark'"
|
|
||||||
'';
|
|
||||||
|
|
||||||
wallpaper = ''
|
|
||||||
$HOME/.config/hypr/scripts/random-wallpaper.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
pywalfox = "command -v pywalfox &>/dev/null && pywalfox dark && pywalfox update";
|
|
||||||
};
|
|
||||||
|
|
||||||
lightModeScripts = {
|
|
||||||
theme = ''
|
|
||||||
${pkgs.dconf}/bin/dconf write\
|
|
||||||
/org/gnome/desktop/interface/color-scheme "'prefer-light'"
|
|
||||||
'';
|
|
||||||
|
|
||||||
wallpaper = ''
|
|
||||||
$HOME/.config/hypr/scripts/random-wallpaper.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
pywalfox = "command -v pywalfox &>/dev/null && pywalfox light && pywalfox update";
|
|
||||||
};
|
|
||||||
|
|
||||||
settings.usegeoclue = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
53
shell.nix
53
shell.nix
@ -1,53 +0,0 @@
|
|||||||
{ pkgs ? import <nixpkgs> {} }:
|
|
||||||
|
|
||||||
let
|
|
||||||
pythonWithPkgs = pkgs.python3.withPackages (ps: with ps; [
|
|
||||||
ps.pyqt5
|
|
||||||
ps.pyqtwebengine
|
|
||||||
ps.pyusb
|
|
||||||
ps.crcmod
|
|
||||||
ps.pyserial
|
|
||||||
]);
|
|
||||||
in
|
|
||||||
|
|
||||||
pkgs.mkShell {
|
|
||||||
name = "ddt4all-env";
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
pythonWithPkgs
|
|
||||||
pkgs.qt5.qtbase
|
|
||||||
pkgs.qt5.qttools
|
|
||||||
pkgs.git
|
|
||||||
pkgs.freetype
|
|
||||||
pkgs.libGL
|
|
||||||
pkgs.dbus
|
|
||||||
pkgs.xorg.libX11
|
|
||||||
pkgs.xorg.libXcomposite
|
|
||||||
pkgs.xorg.libXdamage
|
|
||||||
pkgs.xorg.libXfixes
|
|
||||||
pkgs.xorg.libXrender
|
|
||||||
pkgs.xorg.libXrandr
|
|
||||||
pkgs.xorg.libXtst
|
|
||||||
pkgs.glib
|
|
||||||
pkgs.expat
|
|
||||||
pkgs.fontconfig
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.libsForQt5.qt5.wrapQtAppsHook ];
|
|
||||||
shellHook = ''wrapQtAppsHook'';
|
|
||||||
|
|
||||||
runScript = ''
|
|
||||||
cd $HOME/DDT4ALL
|
|
||||||
|
|
||||||
if [ ! -d ".venv" ]; then
|
|
||||||
python3 -m venv .venv
|
|
||||||
source .venv/bin/activate
|
|
||||||
pip install --upgrade pip
|
|
||||||
pip install -r requirements.txt
|
|
||||||
else
|
|
||||||
source .venv/bin/activate
|
|
||||||
fi
|
|
||||||
|
|
||||||
python3 main.py
|
|
||||||
'';
|
|
||||||
}
|
|
51
shells/ddt4all.nix
Normal file
51
shells/ddt4all.nix
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
pythonWithPkgs = pkgs.python3.withPackages (ps: with ps; [
|
||||||
|
ps.pyqt5
|
||||||
|
ps.pyqtwebengine
|
||||||
|
ps.pyusb
|
||||||
|
ps.crcmod
|
||||||
|
ps.pyserial
|
||||||
|
]);
|
||||||
|
in pkgs.mkShell {
|
||||||
|
name = "ddt4all-env";
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pythonWithPkgs
|
||||||
|
pkgs.qt5.qtbase
|
||||||
|
pkgs.qt5.qttools
|
||||||
|
pkgs.git
|
||||||
|
pkgs.freetype
|
||||||
|
pkgs.libGL
|
||||||
|
pkgs.dbus
|
||||||
|
pkgs.xorg.libX11
|
||||||
|
pkgs.xorg.libXcomposite
|
||||||
|
pkgs.xorg.libXdamage
|
||||||
|
pkgs.xorg.libXfixes
|
||||||
|
pkgs.xorg.libXrender
|
||||||
|
pkgs.xorg.libXrandr
|
||||||
|
pkgs.xorg.libXtst
|
||||||
|
pkgs.glib
|
||||||
|
pkgs.expat
|
||||||
|
pkgs.fontconfig
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.libsForQt5.qt5.wrapQtAppsHook ];
|
||||||
|
shellHook = ''wrapQtAppsHook'';
|
||||||
|
|
||||||
|
runScript = ''
|
||||||
|
cd $HOME/DDT4ALL
|
||||||
|
|
||||||
|
if [ ! -d ".venv" ]; then
|
||||||
|
python3 -m venv .venv
|
||||||
|
source .venv/bin/activate
|
||||||
|
pip install --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
else
|
||||||
|
source .venv/bin/activate
|
||||||
|
fi
|
||||||
|
|
||||||
|
python3 main.py
|
||||||
|
'';
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user