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 = {
|
||||
zenix = mkConf "zenix" {
|
||||
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" {
|
||||
inherit pkgs nixpkgs system user userName home-manager hyprland;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@
|
|||
(import ./modules/email.nix { inherit user userName; })
|
||||
(import ./modules/git.nix { inherit user userName; })
|
||||
(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
|
||||
../system/global/system.nix
|
||||
../system/${name}/system.nix
|
||||
|
|
@ -32,6 +35,10 @@
|
|||
|
||||
roles.laptop.enable = laptop;
|
||||
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
|
||||
];
|
||||
}
|
||||
(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 +
|
||||
", " + toString display.scaling +
|
||||
(if ( display.wallpaper != "" ) then ''
|
||||
|
||||
exec-once = ${pkgs.swaybg}/bin/swaybg -o ${display.name} -i ${display.wallpaper} &
|
||||
'' else "");
|
||||
|
||||
|
|
|
|||
|
|
@ -5,14 +5,13 @@ let
|
|||
pkg = editor.package;
|
||||
terminal = config.programs.terminal.package;
|
||||
termcmd = "${terminal}/bin/${terminal.pname}";
|
||||
menu = "wofi --show dmenu";
|
||||
menu = config.programs.menu.package+config.programs.menu.dmenuCommand;
|
||||
in
|
||||
{
|
||||
options.programs = {
|
||||
editor = {
|
||||
enable = mkEnableOption "editor";
|
||||
package = mkPackageOption pkgs "vscodium" {
|
||||
default = pkgs.vscodium;
|
||||
example = "pkgs.vscode";
|
||||
};
|
||||
neovim = mkEnableOption "neovim mode";
|
||||
|
|
@ -37,7 +36,7 @@ in
|
|||
clone-repo)
|
||||
url=$(wl-paste)
|
||||
${termcmd} -e -- git clone "$url" ;;
|
||||
*) [ -e "$repo" ] && ${pkg}/bin/${pkg.pname} $repo ;;
|
||||
*) [ -e "$repo" ] && ${pkg}/bin/${pkg.executableName} $repo ;;
|
||||
esac
|
||||
'';
|
||||
install = false;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
with lib;
|
||||
let
|
||||
cfg = config.roles.email;
|
||||
terminal = config.programs.terminal.package;
|
||||
termcmd = "${terminal}/bin/${terminal.pname}";
|
||||
in
|
||||
{
|
||||
options.roles = {
|
||||
|
|
@ -18,6 +20,18 @@ in
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
programs.scripts = [
|
||||
{
|
||||
name = "email";
|
||||
text = ''
|
||||
${termcmd} -e aerc
|
||||
'';
|
||||
install = false;
|
||||
hotkeys = [{key = "E";}];
|
||||
}
|
||||
];
|
||||
|
||||
home-manager.users.${user}.imports = [{
|
||||
programs.git = {
|
||||
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
|
||||
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 {
|
||||
home-manager.users.${user}.imports = [{
|
||||
programs.foot = mkIf cfg.package == pkgs.foot {
|
||||
programs.foot = mkIf ( cfg.package == pkgs.foot ) {
|
||||
enable = true;
|
||||
server.enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,6 +13,13 @@ with lib;
|
|||
terminal = false;
|
||||
};
|
||||
|
||||
roles.dev.enable = true;
|
||||
|
||||
programs.editor = {
|
||||
enable = true;
|
||||
package = pkgs.vscode;
|
||||
};
|
||||
|
||||
home-manager.users.${user}.imports = [{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
|
|
@ -22,7 +29,6 @@ with lib;
|
|||
docker-compose
|
||||
minikube
|
||||
kubernetes-helm
|
||||
ansible
|
||||
thunderbird
|
||||
(import ../mkapp.nix "slack" {
|
||||
inherit pkgs;
|
||||
|
|
@ -65,11 +71,6 @@ with lib;
|
|||
|
||||
}];
|
||||
|
||||
programs.editor = {
|
||||
enable = true;
|
||||
package = pkgs.vscode;
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||
# nonfree vscode required for dev containers
|
||||
"vscode"
|
||||
|
|
|
|||
|
|
@ -45,10 +45,10 @@ in
|
|||
|
||||
inkscape
|
||||
pavucontrol
|
||||
dbeaver
|
||||
qpwgraph
|
||||
element-desktop
|
||||
brave
|
||||
gimp
|
||||
quickemu
|
||||
bitwarden
|
||||
libsForQt5.kasts
|
||||
|
|
@ -118,7 +118,7 @@ in
|
|||
}
|
||||
}
|
||||
|
||||
bind = SUPER_SHIFT, Q, killactive,
|
||||
bind = SUPER_SHIFT, X, killactive,
|
||||
bind = SUPER_SHIFT, E, exit,
|
||||
bind = SUPER, SLASH, focuswindow, brave-browser
|
||||
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";
|
||||
|
||||
services.xserver.layout = "gb";
|
||||
services.xserver = {
|
||||
layout = "gb";
|
||||
xkbOptions = "caps:escape";
|
||||
};
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -4,33 +4,8 @@
|
|||
# don't change
|
||||
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 = {
|
||||
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 = HDMI-A-1, 6
|
||||
wsbind = 1, DP-1
|
||||
|
|
@ -43,8 +18,6 @@
|
|||
wsbind = 8, HDMI-A-1
|
||||
wsbind = 9, 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";
|
||||
|
||||
services.xserver = {
|
||||
layout = "gb";
|
||||
xkbOptions = "caps:escape";
|
||||
};
|
||||
|
||||
services.openssh.enable = true;
|
||||
|
||||
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