move all shared config out from darp8 -> graphical

This commit is contained in:
2025-11-12 17:12:55 +00:00
parent 2ff2b7f8bc
commit 96e7f06287
9 changed files with 473 additions and 442 deletions
+3 -223
View File
@@ -3,109 +3,16 @@
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../graphical/configuration.nix
inputs.home-manager.nixosModules.default inputs.home-manager.nixosModules.default
]; ];
networking.hostName = "darp8";
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
plymouth.enable = true;
};
networking = {
hostName = "darp8";
networkmanager = {
enable = true;
# wifi.backend = "iwd";
};
firewall = {
enable = true;
# Open ports in the firewall.
allowedTCPPorts = [ 21 22 80 443 4070 5037 ];
allowedUDPPorts = [ 4070 ];
allowedTCPPortRanges = [
{ from = 8000; to = 8010; }
];
allowPing = true;
};
# wireless.iwd = {
# enable = true;
# settings = {
# driverQuirks.defaultInterface = "wlan0";
# IPv6.Enabled = true;
# Settings.Autoconnect = true;
# General.EnableNetworkConfiguration = true;
# };
# };
};
time.timeZone = "Europe/Dublin"; time.timeZone = "Europe/Dublin";
# time.timeZone = "America/New_York"; # time.timeZone = "America/New_York";
i18n= { services.tailscale.enable = false;
defaultLocale = "en_US.UTF-8";
inputMethod = {
enable = true;
type = "fcitx5";
fcitx5 = {
waylandFrontend = true;
addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
qt6Packages.fcitx5-chinese-addons
];
};
};
};
services = {
avahi = {
enable = true;
nssmdns4 = true;
publish = {
enable = true;
userServices = true;
};
};
greetd = {
enable = true;
restart = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --cmd Hyprland";
};
};
};
auto-cpufreq.enable = true;
libinput.enable = true;
blueman.enable = true;
gvfs.enable = true;
thermald.enable = true;
power-profiles-daemon.enable = false;
pulseaudio.enable = false;
# tailscale.enable = true;
upower.enable = true;
};
security.pam.services.hyprlock = {};
environment = {
etc = {
"greetd/environments".text = ''
Hyprland
river
'';
};
};
hardware = { hardware = {
bluetooth.enable = true; bluetooth.enable = true;
@@ -119,87 +26,8 @@
system76.enableAll = true; system76.enableAll = true;
}; };
fonts = {
packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-color-emoji
liberation_ttf
fira-code-symbols
mplus-outline-fonts.githubRelease
dina-font
nerd-fonts.fira-code
nerd-fonts.droid-sans-mono
];
fontconfig = {
enable = true;
includeUserConf = true;
};
};
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nix.settings = {
substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
trusted-users = [ "root" "@wheel" ];
allowed-users = [ "root" "@wheel" ];
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 10d";
};
nix.optimise = {
automatic = true;
dates = [ "00:00" ];
};
users.users.liamm = {
isNormalUser = true;
description = "liamm";
extraGroups = [ "networkmanager" "wheel" "disk" "power" "video" "davfs2" "input" ];
};
programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
xwayland.enable = true;
withUWSM = true;
plugins = [
# pkgs.hyprlandPlugins.hyprexpo
];
};
river-classic = {
enable = true;
xwayland.enable = true;
};
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
hyprlock.enable = true;
dconf.enable = true;
nix-ld.enable = true;
mtr.enable = true;
};
lib.inputMethod.fcitx5.waylandFrontend = true;
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
extraSpecialArgs = { inherit inputs; inherit cfg; }; extraSpecialArgs = { inherit inputs; inherit cfg; };
@@ -209,54 +37,6 @@
backupFileExtension = ".bak"; backupFileExtension = ".bak";
}; };
environment.systemPackages = with pkgs; [
bat
discord
fd
file
ghostty
glib
gnome-keyring
libdrm
libnotify
mesa
neovim
quickshell
ripgrep
spotify
unzip
usbutils
uxplay
vim
waypipe
wget
wl-clipboard
xdg-user-dirs
zip
];
zramSwap = {
enable = true;
algorithm = "zstd";
};
xdg = {
mime.enable = true;
portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs;[
xdg-desktop-portal-gtk
xdg-desktop-portal-wlr
];
config = {
common = {
default = [ "gtk" ];
};
};
};
};
# This option defines the first version of NixOS you have installed on this particular machine # This option defines the first version of NixOS you have installed on this particular machine
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly. # and migrated your data accordingly.
+4 -58
View File
@@ -11,21 +11,12 @@ let
in in
{ {
imports = [
../graphical/file.nix # import shared configs
];
# Symlink dotfiles # Symlink dotfiles
home.file = mkSymlinkAttrs { home.file = mkSymlinkAttrs {
# Fonts
".local/share/fonts" = {
source = ../../fonts;
outOfStoreSymlink = true;
recursive = true;
};
# Configs
".config/hypr" = {
source = ../../configs/hypr;
outOfStoreSymlink = true;
recursive = true;
};
".config/hypr/hypr-monitors.conf" = { ".config/hypr/hypr-monitors.conf" = {
source = ../../configs/hypr-darp8/hypr-monitors.conf; source = ../../configs/hypr-darp8/hypr-monitors.conf;
outOfStoreSymlink = true; outOfStoreSymlink = true;
@@ -36,55 +27,10 @@ in
outOfStoreSymlink = true; outOfStoreSymlink = true;
recursive = false; recursive = false;
}; };
".config/matugen" = {
source = ../../configs/matugen;
outOfStoreSymlink = true;
recursive = true;
};
".config/DankMaterialShell" = { ".config/DankMaterialShell" = {
source = ../../configs/dms-darp8; source = ../../configs/dms-darp8;
outOfStoreSymlink = true; outOfStoreSymlink = true;
recursive = true; recursive = true;
}; };
".config/river" = {
source = ../../configs/river;
outOfStoreSymlink = true;
recursive = true;
};
".config/waybar" = {
source = ../../configs/waybar;
outOfStoreSymlink = true;
recursive = true;
};
".config/ghostty" = {
source = ../../configs/ghostty;
outOfStoreSymlink = true;
recursive = true;
};
".config/nvim" = {
source = ../../configs/nvim;
outOfStoreSymlink = true;
recursive = true;
};
".config/wofi" = {
source = ../../configs/wofi;
outOfStoreSymlink = true;
recursive = true;
};
".config/swaync" = {
source = ../../configs/swaync;
outOfStoreSymlink = true;
recursive = true;
};
".config/fastfetch" = {
source = ../../configs/fastfetch;
outOfStoreSymlink = true;
recursive = true;
};
".config/emacs" = {
source = ../../configs/emacs;
outOfStoreSymlink = true;
recursive = true;
};
}; };
} }
-5
View File
@@ -64,11 +64,6 @@
# ENV SETTINGS # ENV SETTINGS
xdg.enable = true; xdg.enable = true;
xdg.configFile = { xdg.configFile = {
# "emacs" = {
# source = ../../configs/emacs;
# recursive = true;
# };
"user-dirs.dirs".source = ../../configs/user-dirs.dirs; "user-dirs.dirs".source = ../../configs/user-dirs.dirs;
"user-dirs.locale".source = ../../configs/user-dirs.locale; "user-dirs.locale".source = ../../configs/user-dirs.locale;
}; };
+4 -130
View File
@@ -4,142 +4,16 @@
}: }:
{ {
imports = [
../graphical/pkgs.nix #import shared packages
];
# BEGIN PACKAGES # BEGIN PACKAGES
home.packages = with pkgs; [ home.packages = with pkgs; [
# audacity
android-studio
bat
brave
brightnessctl
btop
comma
emacs-all-the-icons-fonts
emacsPackages.pdf-tools
exfatprogs
fastfetch
ffmpeg
filezilla
floorp-bin
fuzzel
fzf
genymotion
gimp
grim
gtk4
gvfs
grimblast
htop
hyprpicker
imagemagick
kdePackages.kdenlive
kdePackages.polkit-kde-agent-1
keepassxc
libreoffice
localsend
mpv
mupdf
nautilus
networkmanagerapplet
networkmanager_dmenu
nwg-look
openvpn
overskride
pamixer
pavucontrol
powertop
prismlauncher
protonvpn-gui
qbittorrent
signal-desktop
slurp
swaynotificationcenter
swww
teams-for-linux
texliveFull
xfce.thunar
xfce.thunar-volman
tree
waybar
wev
wlr-randr
wlsunset
]; ];
# BEGIN PROGRAMS # BEGIN PROGRAMS
programs = { programs = {
bash = {
enable = true;
enableCompletion = true;
enableVteIntegration = true;
initExtra =''
if [[ -z $ORIG_SHLVL ]]; then
export ORIG_SHLVL=$SHLVL
fi;
if [[ $SHLVL -gt $ORIG_SHLVL ]]; then
export PS1='\[\e[1;m\e[1;33m\e[1;m\] ($(($SHLVL - $ORIG_SHLVL))) \W\[\e[m\e[m\] 🐧 \[\e[1;32m\]~> \[\e[m\e[m\]'
else
export PS1='\[\e[1;m\e[1;33m\e[1;m\] \W\[\e[m\e[m\] 🐧 \[\e[1;32m\]~> \[\e[m\e[m\]'
fi;
export PATH="$HOME/.local/bin:$PATH"
set -o vi
fastfetch
'';
shellAliases = {
build = "./build.sh";
emacsd = "emacs --daemon";
emacsc = "emacsclient -c -a 'emacs'";
gap = "git add -p";
gcp = "git commit -p";
kpx = "keepassxc-cli open";
ls = "ls --color=auto";
ll = "ls -l";
la = "ls -lA";
fastfetch = "fastfetch -c $HOME/.config/fastfetch/config.json";
nixrebuild = "nixos-rebuild build --flake ~/personal/nixos#darp8 && sudo nixos-rebuild switch --flake ~/personal/nixos#darp8";
nixbuild = "sudo nixos-rebuild switch --flake";
nixtest = "sudo nixos-rebuild test --flake";
new = "source $HOME/.bashrc";
newbar = "pkill waybar; waybar &disown";
ping = "ping -c 5";
vi = "\\vim";
work = "nix develop --impure";
".." = "cd ..";
};
};
dankMaterialShell = {
enable = true;
};
emacs = {
enable = true;
package = pkgs.emacs-gtk;
extraPackages = epkgs: [
epkgs.pdf-tools
epkgs.org-pdftools
];
};
feh.enable = true;
git = {
enable = true;
lfs.enable = true;
settings = {
user.email = "maloneliam@proton.me";
user.name = "Liam Malone";
};
};
neovim = {
enable = true;
package = pkgs.neovim-unwrapped;
vimAlias = true;
vimdiffAlias = true;
};
obs-studio = {
enable = true;
};
diff-so-fancy = {
enable = true;
enableGitIntegration = true;
};
wofi.enable = true;
}; };
} }
+3 -26
View File
@@ -1,30 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
services = { imports = [
emacs = { ../graphical/services.nix # import shared services
enable = true; ];
package = pkgs.emacs-gtk;
client = {
enable = true;
arguments = [
"-c"
"-a emacs"
];
};
startWithUserSession = "graphical";
};
gpg-agent = {
enable = true;
defaultCacheTtl = 1800;
enableSshSupport = true;
};
gnome-keyring.enable = true;
mpris-proxy.enable = true;
network-manager-applet.enable = true;
nextcloud-client.enable = true;
swww.enable = true;
};
} }
+211
View File
@@ -0,0 +1,211 @@
{ cfg, config, lib, pkgs, inputs, ... }:
{
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
plymouth.enable = true;
};
networking = {
networkmanager = {
enable = true;
};
firewall = {
enable = true;
# Open ports in the firewall.
allowedTCPPorts = [ 21 22 80 443 4070 5037 ];
allowedUDPPorts = [ 4070 ];
allowedTCPPortRanges = [
{ from = 8000; to = 8010; }
];
allowPing = true;
};
};
i18n= {
defaultLocale = "en_US.UTF-8";
inputMethod = {
enable = true;
type = "fcitx5";
fcitx5 = {
waylandFrontend = true;
addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
qt6Packages.fcitx5-chinese-addons
];
};
};
};
services = {
avahi = {
enable = true;
nssmdns4 = true;
publish = {
enable = true;
userServices = true;
};
};
greetd = {
enable = true;
restart = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --cmd Hyprland";
};
};
};
auto-cpufreq.enable = true;
libinput.enable = true;
blueman.enable = true;
gvfs.enable = true;
thermald.enable = true;
power-profiles-daemon.enable = false;
pulseaudio.enable = false;
upower.enable = true;
};
security.pam.services.hyprlock = {};
environment = {
etc = {
"greetd/environments".text = ''
Hyprland
river
'';
};
};
fonts = {
packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-color-emoji
liberation_ttf
fira-code-symbols
mplus-outline-fonts.githubRelease
dina-font
nerd-fonts.fira-code
nerd-fonts.droid-sans-mono
];
fontconfig = {
enable = true;
includeUserConf = true;
};
};
nix.settings = {
substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
trusted-users = [ "root" "@wheel" ];
allowed-users = [ "root" "@wheel" ];
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 10d";
};
nix.optimise = {
automatic = true;
dates = [ "00:00" ];
};
users.users.liamm = {
isNormalUser = true;
description = "liamm";
extraGroups = [ "networkmanager" "wheel" "disk" "power" "video" "davfs2" "input" ];
};
programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
xwayland.enable = true;
withUWSM = true;
plugins = [ ];
};
river-classic = {
enable = true;
xwayland.enable = true;
};
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
hyprlock.enable = true;
dconf.enable = true;
nix-ld.enable = true;
mtr.enable = true;
};
lib.inputMethod.fcitx5.waylandFrontend = true;
environment.systemPackages = with pkgs; [
bat
discord
fd
file
ghostty
glib
gnome-keyring
libdrm
libnotify
mesa
neovim
quickshell
ripgrep
spotify
unzip
usbutils
uxplay
vim
waypipe
wget
wl-clipboard
xdg-user-dirs
zip
];
zramSwap = {
enable = true;
algorithm = "zstd";
};
xdg = {
mime.enable = true;
portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs;[
xdg-desktop-portal-gtk
xdg-desktop-portal-wlr
];
config = {
common = {
default = [ "gtk" ];
};
};
};
};
}
+80
View File
@@ -0,0 +1,80 @@
{ cfg, config, context, pkgs, ... }:
let
inherit (config.home) username homeDirectory;
mkSymlinkAttrs = import ../../utils/mkSymlinkAttrs.nix {
inherit pkgs;
inherit (cfg) context runtimeRoot;
hm = config.lib; # same as: cfg.context.inputs.home-manager.lib.hm;
};
in
{
# Symlink dotfiles
home.file = mkSymlinkAttrs {
# Fonts
".local/share/fonts" = {
source = ../../fonts;
outOfStoreSymlink = true;
recursive = true;
};
# Configs
".config/hypr" = {
source = ../../configs/hypr;
outOfStoreSymlink = true;
recursive = true;
};
".config/matugen" = {
source = ../../configs/matugen;
outOfStoreSymlink = true;
recursive = true;
};
".config/DankMaterialShell" = {
source = ../../configs/dms-darp8;
outOfStoreSymlink = true;
recursive = true;
};
".config/river" = {
source = ../../configs/river;
outOfStoreSymlink = true;
recursive = true;
};
".config/waybar" = {
source = ../../configs/waybar;
outOfStoreSymlink = true;
recursive = true;
};
".config/ghostty" = {
source = ../../configs/ghostty;
outOfStoreSymlink = true;
recursive = true;
};
".config/nvim" = {
source = ../../configs/nvim;
outOfStoreSymlink = true;
recursive = true;
};
".config/wofi" = {
source = ../../configs/wofi;
outOfStoreSymlink = true;
recursive = true;
};
".config/swaync" = {
source = ../../configs/swaync;
outOfStoreSymlink = true;
recursive = true;
};
".config/fastfetch" = {
source = ../../configs/fastfetch;
outOfStoreSymlink = true;
recursive = true;
};
".config/emacs" = {
source = ../../configs/emacs;
outOfStoreSymlink = true;
recursive = true;
};
};
}
+140
View File
@@ -0,0 +1,140 @@
{
pkgs,
...
}:
{
# BEGIN PACKAGES
home.packages = with pkgs; [
audacity
android-studio
bat
brave
brightnessctl
btop
comma
emacs-all-the-icons-fonts
emacsPackages.pdf-tools
exfatprogs
fastfetch
ffmpeg
filezilla
floorp-bin
fuzzel
fzf
genymotion
gimp
grim
gtk4
gvfs
grimblast
htop
hyprpicker
imagemagick
kdePackages.kdenlive
kdePackages.polkit-kde-agent-1
keepassxc
libreoffice
localsend
mpv
mupdf
networkmanagerapplet
nwg-look
openvpn
pamixer
pavucontrol
powertop
prismlauncher
protonvpn-gui
qbittorrent
signal-desktop
slurp
teams-for-linux
texliveFull
xfce.thunar
xfce.thunar-volman
tree
waybar
wev
wlr-randr
wlsunset
zoom-us
];
# BEGIN PROGRAMS
programs = {
bash = {
enable = true;
enableCompletion = true;
enableVteIntegration = true;
initExtra =''
if [[ -z $ORIG_SHLVL ]]; then
export ORIG_SHLVL=$SHLVL
fi;
if [[ $SHLVL -gt $ORIG_SHLVL ]]; then
export PS1='\[\e[1;m\e[1;33m\e[1;m\] ($(($SHLVL - $ORIG_SHLVL))) \W\[\e[m\e[m\] 🐧 \[\e[1;32m\]~> \[\e[m\e[m\]'
else
export PS1='\[\e[1;m\e[1;33m\e[1;m\] \W\[\e[m\e[m\] 🐧 \[\e[1;32m\]~> \[\e[m\e[m\]'
fi;
export PATH="$HOME/.local/bin:$PATH"
set -o vi
fastfetch
'';
shellAliases = {
build = "./build.sh";
emacsd = "emacs --daemon";
emacsc = "emacsclient -c -a 'emacs'";
gap = "git add -p";
gcp = "git commit -p";
kpx = "keepassxc-cli open";
ls = "ls --color=auto";
ll = "ls -l";
la = "ls -lA";
fastfetch = "fastfetch -c $HOME/.config/fastfetch/config.json";
nixrebuild = "nixos-rebuild build --flake ~/personal/nixos#darp8 && sudo nixos-rebuild switch --flake ~/personal/nixos#darp8";
nixbuild = "sudo nixos-rebuild switch --flake";
nixtest = "sudo nixos-rebuild test --flake";
new = "source $HOME/.bashrc";
newbar = "pkill waybar; waybar &disown";
ping = "ping -c 5";
vi = "\\vim";
work = "nix develop --impure";
".." = "cd ..";
};
};
dankMaterialShell = {
enable = true;
};
emacs = {
enable = true;
package = pkgs.emacs-gtk;
extraPackages = epkgs: [
epkgs.pdf-tools
epkgs.org-pdftools
];
};
feh.enable = true;
git = {
enable = true;
lfs.enable = true;
settings = {
user.email = "maloneliam@proton.me";
user.name = "Liam Malone";
};
};
neovim = {
enable = true;
package = pkgs.neovim-unwrapped;
vimAlias = true;
vimdiffAlias = true;
};
obs-studio = {
enable = true;
};
diff-so-fancy = {
enable = true;
enableGitIntegration = true;
};
};
}
+28
View File
@@ -0,0 +1,28 @@
{ pkgs, ... }:
{
services = {
emacs = {
enable = true;
package = pkgs.emacs-gtk;
client = {
enable = true;
arguments = [
"-c"
"-a emacs"
];
};
startWithUserSession = "graphical";
};
gpg-agent = {
enable = true;
defaultCacheTtl = 1800;
enableSshSupport = true;
};
gnome-keyring.enable = true;
mpris-proxy.enable = true;
nextcloud-client.enable = true;
};
}