making home work too

This commit is contained in:
Ivan Kirilov Dimitrov 2024-06-12 23:19:58 +02:00
parent 472817d1da
commit 1d42e5fd1e
No known key found for this signature in database
GPG Key ID: 0BDAD4B211C49294
43 changed files with 231 additions and 228 deletions

View File

@ -1,7 +1,23 @@
{ ... }: { top@{ inputs, ... }: {
imports = [ ./nixos ]; imports = [ ./nixos ./home ];
systems = [ "x86_64-linux" ]; systems = [ "x86_64-linux" ];
perSystem = { inputs, system, ... }: { perSystem = perSystem@{ system, ... }: {
_module.args.pkgs = import inputs.nixpkgs { inherit system; }; config._module.args = {
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [
(final: prev: {
nvim = inputs.ide.nvim.${system}.standalone {
plugins.lsp.servers = {
bashls.enable = true;
nushell.enable = true;
};
};
scripts = (prev.buildEnv { name = "scripts"; paths = [ ./. ]; });
})
];
};
stateVersion = "24.05";
};
}; };
} }

3
home/configs/default.nix Normal file
View File

@ -0,0 +1,3 @@
{
imports = [ ./ivand ];
}

View File

@ -0,0 +1,22 @@
toplevel@{ inputs, withSystem, ... }:
{
flake.homeConfigurations.ivand = withSystem "x86_64-linux" (ctx@{ pkgs, stateVersion, ... }:
inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules =
let
mods = toplevel.config.flake.homeManagerModules;
in
[
{
home.stateVersion = stateVersion;
}
inputs.nid.hmModules.nix-index
mods.all
mods.dev
mods.essential
mods.random
inputs.catppuccin.homeManagerModules.catppuccin
];
});
}

View File

@ -1,41 +1,3 @@
{ stateVersion, pkgs, home-manager, modules, nid, catppuccin, ... }:
let
ivand-programs = with modules.home.programs; [
bat
bottom
browserpass
carapace
chromium
cliphist
comma
firefox
git
gpg
imv
kitty
lf
mako
mpv
nushell
nvim
obs-studio
pueue
rofi
starship
sway
swaylock
tealdeer
tmux
waybar
zsh
];
ivand-packages = {
home.packages = with modules.home.packages; (dev ++ essential ++ random);
};
in
{ {
ivand = home-manager.lib.homeManagerConfiguration { imports = [ ./modules ./configs ];
inherit pkgs;
modules = [{ home.stateVersion = stateVersion; } ./ivand nid.hmModules.nix-index ivand-packages] ++ ivand-programs ++ [ catppuccin.homeManagerModules.catppuccin ];
};
} }

View File

@ -1,109 +0,0 @@
{ pkgs, ... }: rec {
programs.home-manager = { enable = true; };
catppuccin = {
enable = true;
flavor = "mocha";
};
gtk = {
enable = true;
catppuccin.enable = true;
};
home = rec {
username = "ivand";
homeDirectory = "/home/ivand";
sessionPath = [
"$HOME/.local/bin"
];
sessionVariables = {
PASSWORD_STORE_DIR = "${homeDirectory}/.password-store";
EDITOR = "nvim";
PAGER = "bat";
TERM = "screen-256color";
};
pointerCursor = {
name = "Catppuccin-Mocha-Green-Cursors";
package = pkgs.catppuccin-cursors.mochaGreen;
};
};
systemd.user = {
timers = {
rbingwp = {
Timer = {
OnCalendar = "*-*-* 10:00:00";
Persistent = true;
};
Install = {
WantedBy = [ "timers.target" ];
};
};
};
services = {
wpd = {
Service = {
Environment = [
"PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.swaybg}/bin"
];
ExecStart = [ "${pkgs.nushell}/bin/nu -c 'swaybg -i ((xdg-user-dir PICTURES) | path split | path join bg.png)'" ];
};
};
bingwp = {
Service = {
Type = "oneshot";
Environment = [
"PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.nushell}/bin"
];
ExecStart = [ "${pkgs.scripts}/bin/bingwp" ];
};
};
rbingwp = {
Install = {
WantedBy = [ "sway-session.target" ];
};
Unit = {
Description = "Restart bingwp and wpd services";
After = "graphical-session-pre.target";
PartOf = "graphical-session.target";
};
Service = {
Type = "oneshot";
ExecStart = [ "${pkgs.nushell}/bin/nu -c '${pkgs.systemd}/bin/systemctl --user restart bingwp.service; ${pkgs.systemd}/bin/systemctl --user restart wpd.service'" ];
};
};
};
};
xdg = {
enable = true;
userDirs = {
enable = true;
createDirectories = true;
desktop = "${home.homeDirectory}/dt";
documents = "${home.homeDirectory}/doc";
download = "${home.homeDirectory}/dl";
pictures = "${home.homeDirectory}/pic";
videos = "${home.homeDirectory}/vid";
templates = "${home.homeDirectory}/tpl";
publicShare = "${home.homeDirectory}/pub";
music = "${home.homeDirectory}/mus";
};
mimeApps = {
enable = true;
defaultApplications = {
"text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop";
"x-scheme-handler/mailto" = "userapp-Thunderbird-LDALA2.desktop";
"message/rfc822" = "userapp-Thunderbird-LDALA2.desktop";
"x-scheme-handler/mid" = "userapp-Thunderbird-LDALA2.desktop";
};
};
};
}

3
home/modules/default.nix Normal file
View File

@ -0,0 +1,3 @@
{
imports = [ ./packages ];
}

View File

@ -0,0 +1,146 @@
{ moduleWithSystem, ... }: {
flake.homeManagerModules = {
dev = moduleWithSystem (
top@{ ... }:
perSystem@{ pkgs, ... }: {
home.packages = with pkgs; [
openssh
procs
ripgrep
fswatch
nvim
];
}
);
essential = moduleWithSystem (
top@{ ... }:
perSystem@{ pkgs, ... }: {
home.packages = with pkgs; [
gopass
ffmpeg
transmission
];
}
);
random = moduleWithSystem (
top@{ ... }:
perSystem@{ pkgs, ... }: {
home.packages = with pkgs; [
xonotic
];
}
);
all = moduleWithSystem
(
top@{ ... }:
perSystem@{ pkgs, ... }:
rec {
imports = [ ../programs ];
programs.home-manager = { enable = true; };
catppuccin = {
enable = true;
flavor = "mocha";
};
gtk = {
enable = true;
catppuccin.enable = true;
};
home = rec {
username = "ivand";
homeDirectory = "/home/ivand";
sessionPath = [
"$HOME/.local/bin"
];
sessionVariables = {
PASSWORD_STORE_DIR = "${homeDirectory}/.password-store";
EDITOR = "nvim";
PAGER = "bat";
TERM = "screen-256color";
};
pointerCursor = {
name = "Catppuccin-Mocha-Green-Cursors";
package = pkgs.catppuccin-cursors.mochaGreen;
};
};
systemd.user = {
timers = {
rbingwp = {
Timer = {
OnCalendar = "*-*-* 10:00:00";
Persistent = true;
};
Install = {
WantedBy = [ "timers.target" ];
};
};
};
services = {
wpd = {
Service = {
Environment = [
"PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.swaybg}/bin"
];
ExecStart = [ "${pkgs.nushell}/bin/nu -c 'swaybg -i ((xdg-user-dir PICTURES) | path split | path join bg.png)'" ];
};
};
bingwp = {
Service = {
Type = "oneshot";
Environment = [
"PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.nushell}/bin"
];
ExecStart = [ "${pkgs.scripts}/bin/bingwp" ];
};
};
rbingwp = {
Install = {
WantedBy = [ "sway-session.target" ];
};
Unit = {
Description = "Restart bingwp and wpd services";
After = "graphical-session-pre.target";
PartOf = "graphical-session.target";
};
Service = {
Type = "oneshot";
ExecStart = [ "${pkgs.nushell}/bin/nu -c '${pkgs.systemd}/bin/systemctl --user restart bingwp.service; ${pkgs.systemd}/bin/systemctl --user restart wpd.service'" ];
};
};
};
};
xdg = {
enable = true;
userDirs = {
enable = true;
createDirectories = true;
desktop = "${home.homeDirectory}/dt";
documents = "${home.homeDirectory}/doc";
download = "${home.homeDirectory}/dl";
pictures = "${home.homeDirectory}/pic";
videos = "${home.homeDirectory}/vid";
templates = "${home.homeDirectory}/tpl";
publicShare = "${home.homeDirectory}/pub";
music = "${home.homeDirectory}/mus";
};
mimeApps = {
enable = true;
defaultApplications = {
"text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop";
"x-scheme-handler/mailto" = "userapp-Thunderbird-LDALA2.desktop";
"message/rfc822" = "userapp-Thunderbird-LDALA2.desktop";
"x-scheme-handler/mid" = "userapp-Thunderbird-LDALA2.desktop";
};
};
};
}
);
};
}

View File

@ -1,4 +1,4 @@
{ pkgs }: { { pkgs, ... }: {
programs.chromium = { programs.chromium = {
enable = true; enable = true;
package = pkgs.ungoogled-chromium; package = pkgs.ungoogled-chromium;

View File

@ -0,0 +1,29 @@
{ ... }: {
imports = [
./bat
./bottom
./carapace
./chromium
./cliphist
./comma
./firefox
./git
./gpg
./imv
./mako
./kitty
./lf
./mpv
./nushell
./obs-studio
./pueue
./rofi
./starship
./sway
./swaylock
./tealdeer
./tmux
./waybar
./zsh
];
}

View File

@ -1,4 +1,4 @@
{ pkgs }: { { pkgs, ... }: {
programs.firefox = { programs.firefox = {
enable = true; enable = true;
profiles.ivand = { profiles.ivand = {

View File

@ -0,0 +1,3 @@
{ nvim, ... }:
nvim
{ }

View File

@ -1,4 +1,4 @@
{ pkgs }: { { pkgs, ... }: {
programs.obs-studio = { programs.obs-studio = {
enable = true; enable = true;
plugins = with pkgs.obs-studio-plugins; [ wlrobs ]; plugins = with pkgs.obs-studio-plugins; [ wlrobs ];

View File

@ -59,7 +59,6 @@
libreoffice-qt libreoffice-qt
mupdf mupdf
pavucontrol pavucontrol
scripts
slurp slurp
wl-clipboard wl-clipboard
xdg-user-dirs xdg-user-dirs

View File

@ -1,13 +0,0 @@
{ system, nixpkgs, pkgs, ide, ... }:
{
nixos = {
gaming = import ./nixos/gaming { inherit nixpkgs; };
nvidia = import ./nixos/nvidia { inherit nixpkgs; };
dnscrypt = import ./nixos/dnscrypt;
wireguard = import ./nixos/wireguard;
};
home = {
packages = import ./home/packages pkgs;
programs = import ./home/programs { inherit system pkgs ide; };
};
}

View File

@ -1,17 +0,0 @@
pkgs: with pkgs; {
dev = [
openssh
procs
ripgrep
fswatch
];
essential = [
gopass
ffmpeg
transmission
];
random = [
telegram-desktop
xonotic
];
}

View File

@ -1,32 +0,0 @@
{ system, pkgs, ide, ... }: {
nvim = import ./neovim {
nvim = ide.nvim.${system}.homeManagerModules.nvim;
};
bat = import ./bat;
bottom = import ./bottom;
browserpass = { programs.browserpass.enable = true; };
carapace = import ./carapace;
chromium = import ./chromium { inherit pkgs; };
cliphist = import ./cliphist;
comma = import ./comma;
firefox = import ./firefox { inherit pkgs; };
git = import ./git;
gpg = import ./gpg { inherit pkgs; };
imv = import ./imv;
mako = import ./mako;
kitty = import ./kitty { inherit pkgs; };
lf = import ./lf;
mpv = import ./mpv;
nushell = import ./nushell { inherit pkgs; };
obs-studio = import ./obs-studio { inherit pkgs; };
pueue = import ./pueue;
rofi = import ./rofi { inherit pkgs; };
starship = import ./starship;
sway = import ./sway { inherit pkgs; };
swaylock = import ./swaylock;
tealdeer = import ./tealdeer;
tmux = import ./tmux { inherit pkgs; };
waybar = import ./waybar;
zsh = import ./zsh { inherit pkgs; };
}

View File

@ -1,9 +0,0 @@
{ nvim, ... }:
nvim
{
enable = true;
plugins.lsp.servers = {
bashls.enable = true;
nushell.enable = true;
};
}

View File

@ -1,3 +1,3 @@
{ ... }: { { ... }: {
imports = [ ./modules ./systems ]; imports = [ ./modules ./configs ];
} }