modularise the stuff
This commit is contained in:
parent
011009d22f
commit
d1bcbc0fde
16 changed files with 159 additions and 61 deletions
12
flake.nix
12
flake.nix
|
|
@ -28,6 +28,18 @@
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
zenix = mkConf "zenix" {
|
zenix = mkConf "zenix" {
|
||||||
inherit pkgs nixpkgs system user userName home-manager hyprland;
|
inherit pkgs nixpkgs system user userName home-manager hyprland;
|
||||||
|
displays = [
|
||||||
|
{
|
||||||
|
name = "DP-1";
|
||||||
|
resolution = {x=1920;y=1080;freq=144;};
|
||||||
|
wallpaper = "~/Pictures/backgrounds/demonslayer.jpg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "HDMI-A-1";
|
||||||
|
resolution = {x=1920;y=1080;freq=60;};
|
||||||
|
wallpaper = "~/Pictures/backgrounds/nier.jpg";
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
FCS-Tristan-Nixbook = mkConf "work" {
|
FCS-Tristan-Nixbook = mkConf "work" {
|
||||||
inherit pkgs nixpkgs system user userName home-manager hyprland;
|
inherit pkgs nixpkgs system user userName home-manager hyprland;
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,9 @@
|
||||||
(import ./modules/email.nix { inherit user userName; })
|
(import ./modules/email.nix { inherit user userName; })
|
||||||
(import ./modules/git.nix { inherit user userName; })
|
(import ./modules/git.nix { inherit user userName; })
|
||||||
(import ./modules/laptop.nix { inherit user; })
|
(import ./modules/laptop.nix { inherit user; })
|
||||||
|
(import ./modules/dev.nix { inherit user; })
|
||||||
|
(import ./modules/personal.nix { inherit user; })
|
||||||
|
(import ./modules/gamer.nix { inherit user; })
|
||||||
./scripts.nix
|
./scripts.nix
|
||||||
../system/global/system.nix
|
../system/global/system.nix
|
||||||
../system/${name}/system.nix
|
../system/${name}/system.nix
|
||||||
|
|
@ -32,6 +35,10 @@
|
||||||
|
|
||||||
roles.laptop.enable = laptop;
|
roles.laptop.enable = laptop;
|
||||||
roles.work.enable = work;
|
roles.work.enable = work;
|
||||||
roles.git.enable = true;
|
roles.personal.enable = !work;
|
||||||
|
displays = {
|
||||||
|
enable = true;
|
||||||
|
displays = displays;
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -30,6 +30,6 @@ nixpkgs.lib.nixosSystem rec {
|
||||||
hyprland.homeManagerModules.default
|
hyprland.homeManagerModules.default
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
(import ./home.nix { inherit user userName name hyprland laptop work; })
|
(import ./home.nix { inherit user userName name hyprland laptop work displays; })
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
25
lib/modules/dev.nix
Normal file
25
lib/modules/dev.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ user, ... }: { lib, pkgs, config, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.roles.dev;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.roles = {
|
||||||
|
dev = {
|
||||||
|
enable = mkEnableOption "editor";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.editor.enable = true;
|
||||||
|
roles.git.enable = true;
|
||||||
|
programs.terminal.enable = true;
|
||||||
|
home-manager.users.${user}.imports = [{
|
||||||
|
home.packages = (with pkgs; [
|
||||||
|
insomnia
|
||||||
|
dbeaver
|
||||||
|
ansible
|
||||||
|
]);
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -13,6 +13,7 @@ let
|
||||||
", " + display.position +
|
", " + display.position +
|
||||||
", " + toString display.scaling +
|
", " + toString display.scaling +
|
||||||
(if ( display.wallpaper != "" ) then ''
|
(if ( display.wallpaper != "" ) then ''
|
||||||
|
|
||||||
exec-once = ${pkgs.swaybg}/bin/swaybg -o ${display.name} -i ${display.wallpaper} &
|
exec-once = ${pkgs.swaybg}/bin/swaybg -o ${display.name} -i ${display.wallpaper} &
|
||||||
'' else "");
|
'' else "");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,13 @@ let
|
||||||
pkg = editor.package;
|
pkg = editor.package;
|
||||||
terminal = config.programs.terminal.package;
|
terminal = config.programs.terminal.package;
|
||||||
termcmd = "${terminal}/bin/${terminal.pname}";
|
termcmd = "${terminal}/bin/${terminal.pname}";
|
||||||
menu = "wofi --show dmenu";
|
menu = config.programs.menu.package+config.programs.menu.dmenuCommand;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.programs = {
|
options.programs = {
|
||||||
editor = {
|
editor = {
|
||||||
enable = mkEnableOption "editor";
|
enable = mkEnableOption "editor";
|
||||||
package = mkPackageOption pkgs "vscodium" {
|
package = mkPackageOption pkgs "vscodium" {
|
||||||
default = pkgs.vscodium;
|
|
||||||
example = "pkgs.vscode";
|
example = "pkgs.vscode";
|
||||||
};
|
};
|
||||||
neovim = mkEnableOption "neovim mode";
|
neovim = mkEnableOption "neovim mode";
|
||||||
|
|
@ -37,7 +36,7 @@ in
|
||||||
clone-repo)
|
clone-repo)
|
||||||
url=$(wl-paste)
|
url=$(wl-paste)
|
||||||
${termcmd} -e -- git clone "$url" ;;
|
${termcmd} -e -- git clone "$url" ;;
|
||||||
*) [ -e "$repo" ] && ${pkg}/bin/${pkg.pname} $repo ;;
|
*) [ -e "$repo" ] && ${pkg}/bin/${pkg.executableName} $repo ;;
|
||||||
esac
|
esac
|
||||||
'';
|
'';
|
||||||
install = false;
|
install = false;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.roles.email;
|
cfg = config.roles.email;
|
||||||
|
terminal = config.programs.terminal.package;
|
||||||
|
termcmd = "${terminal}/bin/${terminal.pname}";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.roles = {
|
options.roles = {
|
||||||
|
|
@ -18,6 +20,18 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
programs.scripts = [
|
||||||
|
{
|
||||||
|
name = "email";
|
||||||
|
text = ''
|
||||||
|
${termcmd} -e aerc
|
||||||
|
'';
|
||||||
|
install = false;
|
||||||
|
hotkeys = [{key = "E";}];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
home-manager.users.${user}.imports = [{
|
home-manager.users.${user}.imports = [{
|
||||||
programs.git = {
|
programs.git = {
|
||||||
userName = userName;
|
userName = userName;
|
||||||
|
|
|
||||||
30
lib/modules/gamer.nix
Normal file
30
lib/modules/gamer.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
{ user }: { lib, pkgs, config, ... }:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options.roles.gamer = {
|
||||||
|
enable = mkEnableOption "gamer packages";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.roles.gamer.enable {
|
||||||
|
|
||||||
|
home-manager.users.${user}.imports = [{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
airshipper
|
||||||
|
minetest
|
||||||
|
];
|
||||||
|
}];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
|
# gamer time
|
||||||
|
"steam"
|
||||||
|
"steam-run"
|
||||||
|
"steam-original"
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
dedicatedServer.openFirewall = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -28,6 +28,9 @@ in
|
||||||
gaps_out = 10
|
gaps_out = 10
|
||||||
border_size = 3
|
border_size = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# so hard to reach X on a laptop
|
||||||
|
bind = SUPER_SHIFT, Q, killactive,
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}];
|
}];
|
||||||
|
|
|
||||||
33
lib/modules/personal.nix
Normal file
33
lib/modules/personal.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
{ user }: { lib, pkgs, config, ... }:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options.roles.personal = {
|
||||||
|
enable = mkEnableOption "personal packages";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.roles.personal.enable {
|
||||||
|
|
||||||
|
roles.email = {
|
||||||
|
enable = true;
|
||||||
|
email = "tristan@tristans.cloud";
|
||||||
|
terminal = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
roles.dev.enable = true;
|
||||||
|
roles.gamer.enable = true;
|
||||||
|
|
||||||
|
home-manager.users.${user}.imports = [{
|
||||||
|
services.nextcloud-client.enable = true;
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
nextcloud-client
|
||||||
|
godot_4
|
||||||
|
ardour
|
||||||
|
blender
|
||||||
|
musescore
|
||||||
|
handbrake
|
||||||
|
monero-gui
|
||||||
|
xmrig
|
||||||
|
];
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@ in
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${user}.imports = [{
|
home-manager.users.${user}.imports = [{
|
||||||
programs.foot = mkIf cfg.package == pkgs.foot {
|
programs.foot = mkIf ( cfg.package == pkgs.foot ) {
|
||||||
enable = true;
|
enable = true;
|
||||||
server.enable = true;
|
server.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,13 @@ with lib;
|
||||||
terminal = false;
|
terminal = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
roles.dev.enable = true;
|
||||||
|
|
||||||
|
programs.editor = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.vscode;
|
||||||
|
};
|
||||||
|
|
||||||
home-manager.users.${user}.imports = [{
|
home-manager.users.${user}.imports = [{
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
@ -22,7 +29,6 @@ with lib;
|
||||||
docker-compose
|
docker-compose
|
||||||
minikube
|
minikube
|
||||||
kubernetes-helm
|
kubernetes-helm
|
||||||
ansible
|
|
||||||
thunderbird
|
thunderbird
|
||||||
(import ../mkapp.nix "slack" {
|
(import ../mkapp.nix "slack" {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
|
|
@ -65,11 +71,6 @@ with lib;
|
||||||
|
|
||||||
}];
|
}];
|
||||||
|
|
||||||
programs.editor = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.vscode;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
# nonfree vscode required for dev containers
|
# nonfree vscode required for dev containers
|
||||||
"vscode"
|
"vscode"
|
||||||
|
|
|
||||||
|
|
@ -45,10 +45,10 @@ in
|
||||||
|
|
||||||
inkscape
|
inkscape
|
||||||
pavucontrol
|
pavucontrol
|
||||||
dbeaver
|
|
||||||
qpwgraph
|
qpwgraph
|
||||||
element-desktop
|
element-desktop
|
||||||
brave
|
brave
|
||||||
|
gimp
|
||||||
quickemu
|
quickemu
|
||||||
bitwarden
|
bitwarden
|
||||||
libsForQt5.kasts
|
libsForQt5.kasts
|
||||||
|
|
@ -118,7 +118,7 @@ in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bind = SUPER_SHIFT, Q, killactive,
|
bind = SUPER_SHIFT, X, killactive,
|
||||||
bind = SUPER_SHIFT, E, exit,
|
bind = SUPER_SHIFT, E, exit,
|
||||||
bind = SUPER, SLASH, focuswindow, brave-browser
|
bind = SUPER, SLASH, focuswindow, brave-browser
|
||||||
bind = SUPER, n, focuswindow, Logseq
|
bind = SUPER, n, focuswindow, Logseq
|
||||||
|
|
@ -850,5 +850,20 @@ color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
coc = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
languageserver = {
|
||||||
|
go = {
|
||||||
|
command = "${pkgs.gopls}/bin/gopls";
|
||||||
|
filetypes = [ "go" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,10 @@
|
||||||
|
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
|
|
||||||
services.xserver.layout = "gb";
|
services.xserver = {
|
||||||
|
layout = "gb";
|
||||||
|
xkbOptions = "caps:escape";
|
||||||
|
};
|
||||||
|
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -4,33 +4,8 @@
|
||||||
# don't change
|
# don't change
|
||||||
home.stateVersion = "22.05";
|
home.stateVersion = "22.05";
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
gimp
|
|
||||||
nextcloud-client
|
|
||||||
godot_4
|
|
||||||
ardour
|
|
||||||
blender
|
|
||||||
musescore
|
|
||||||
ansible
|
|
||||||
handbrake
|
|
||||||
monero-gui
|
|
||||||
xmrig
|
|
||||||
|
|
||||||
#gamer
|
|
||||||
airshipper
|
|
||||||
minetest
|
|
||||||
];
|
|
||||||
|
|
||||||
services.nextcloud-client.enable = true;
|
|
||||||
services.nextcloud-client.startInBackground = true;
|
|
||||||
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
exec-once = ${ pkgs.swaybg }/bin/swaybg -o DP-1 -i ~/Pictures/backgrounds/demonslayer.jpg -o HDMI-A-1 -i ~/Pictures/backgrounds/nier.jpg &
|
|
||||||
|
|
||||||
monitor = DP-1, 1920x1080@144,0x0, 1
|
|
||||||
monitor = HDMI-A-1, 1920x1080@60, 1920x0,1
|
|
||||||
workspace = DP-1, 1
|
workspace = DP-1, 1
|
||||||
workspace = HDMI-A-1, 6
|
workspace = HDMI-A-1, 6
|
||||||
wsbind = 1, DP-1
|
wsbind = 1, DP-1
|
||||||
|
|
@ -43,8 +18,6 @@
|
||||||
wsbind = 8, HDMI-A-1
|
wsbind = 8, HDMI-A-1
|
||||||
wsbind = 9, HDMI-A-1
|
wsbind = 9, HDMI-A-1
|
||||||
wsbind = 10,HDMI-A-1
|
wsbind = 10,HDMI-A-1
|
||||||
bind = SUPER_SHIFT, X, killactive,
|
|
||||||
bind = SUPER, E, exec, foot -e aerc
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,6 @@
|
||||||
|
|
||||||
networking.hostName = "zenix";
|
networking.hostName = "zenix";
|
||||||
|
|
||||||
services.xserver = {
|
|
||||||
layout = "gb";
|
|
||||||
xkbOptions = "caps:escape";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
networking.firewall.checkReversePath = "loose";
|
networking.firewall.checkReversePath = "loose";
|
||||||
|
|
@ -22,18 +17,5 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
|
||||||
# gamer time
|
|
||||||
"steam"
|
|
||||||
"steam-run"
|
|
||||||
"steam-original"
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
remotePlay.openFirewall = true;
|
|
||||||
dedicatedServer.openFirewall = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue