making home work too
This commit is contained in:
parent
472817d1da
commit
1d42e5fd1e
24
default.nix
24
default.nix
@ -1,7 +1,23 @@
|
||||
{ ... }: {
|
||||
imports = [ ./nixos ];
|
||||
top@{ inputs, ... }: {
|
||||
imports = [ ./nixos ./home ];
|
||||
systems = [ "x86_64-linux" ];
|
||||
perSystem = { inputs, system, ... }: {
|
||||
_module.args.pkgs = import inputs.nixpkgs { inherit system; };
|
||||
perSystem = perSystem@{ 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
3
home/configs/default.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
imports = [ ./ivand ];
|
||||
}
|
22
home/configs/ivand/default.nix
Normal file
22
home/configs/ivand/default.nix
Normal 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
|
||||
];
|
||||
});
|
||||
}
|
@ -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 {
|
||||
inherit pkgs;
|
||||
modules = [{ home.stateVersion = stateVersion; } ./ivand nid.hmModules.nix-index ivand-packages] ++ ivand-programs ++ [ catppuccin.homeManagerModules.catppuccin ];
|
||||
};
|
||||
imports = [ ./modules ./configs ];
|
||||
}
|
||||
|
@ -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
3
home/modules/default.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
imports = [ ./packages ];
|
||||
}
|
146
home/modules/packages/default.nix
Normal file
146
home/modules/packages/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
{ pkgs }: {
|
||||
{ pkgs, ... }: {
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
package = pkgs.ungoogled-chromium;
|
29
home/modules/programs/default.nix
Normal file
29
home/modules/programs/default.nix
Normal 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
|
||||
];
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
{ pkgs }: {
|
||||
{ pkgs, ... }: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.ivand = {
|
3
home/modules/programs/neovim/default.nix
Normal file
3
home/modules/programs/neovim/default.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{ nvim, ... }:
|
||||
nvim
|
||||
{ }
|
@ -1,4 +1,4 @@
|
||||
{ pkgs }: {
|
||||
{ pkgs, ... }: {
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [ wlrobs ];
|
@ -59,7 +59,6 @@
|
||||
libreoffice-qt
|
||||
mupdf
|
||||
pavucontrol
|
||||
scripts
|
||||
slurp
|
||||
wl-clipboard
|
||||
xdg-user-dirs
|
@ -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; };
|
||||
};
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
pkgs: with pkgs; {
|
||||
dev = [
|
||||
openssh
|
||||
procs
|
||||
ripgrep
|
||||
fswatch
|
||||
];
|
||||
essential = [
|
||||
gopass
|
||||
ffmpeg
|
||||
transmission
|
||||
];
|
||||
random = [
|
||||
telegram-desktop
|
||||
xonotic
|
||||
];
|
||||
}
|
@ -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; };
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
{ nvim, ... }:
|
||||
nvim
|
||||
{
|
||||
enable = true;
|
||||
plugins.lsp.servers = {
|
||||
bashls.enable = true;
|
||||
nushell.enable = true;
|
||||
};
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
{ ... }: {
|
||||
imports = [ ./modules ./systems ];
|
||||
imports = [ ./modules ./configs ];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user