parent
5b8dbadbb1
commit
efa926d33f
@ -0,0 +1,16 @@
|
||||
{ lib, user, ... }:
|
||||
|
||||
let keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEQNlGt62dBMojVCX7EUIia+wfSDfLzV4YCPi8SZ2xrp elnu@elnu.com"
|
||||
]; in
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
# Remember to update for new instances
|
||||
./networking.nix # generated at runtime by nixos-infect
|
||||
];
|
||||
services.do-agent.enable = true;
|
||||
services.openssh.enable = true;
|
||||
users.users.root.openssh.authorizedKeys.keys = keys;
|
||||
users.users.${user}.openssh.authorizedKeys.keys = keys;
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{ modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
||||
boot.loader.grub.device = "/dev/vda";
|
||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi" ];
|
||||
boot.initrd.kernelModules = [ "nvme" ];
|
||||
fileSystems."/" = { device = "/dev/vda1"; fsType = "ext4"; };
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../modules/bash
|
||||
../../modules/neovim
|
||||
];
|
||||
# Disable greeter, which is getting run twice somehow
|
||||
programs.bash = with import ../../modules/bash/bashrc.nix; {
|
||||
bashrcExtra = lib.mkForce bashrcExtra;
|
||||
profileExtra = greeter;
|
||||
};
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
{ lib, ... }: {
|
||||
# This file was populated at runtime with the networking
|
||||
# details gathered from the active system.
|
||||
networking = {
|
||||
nameservers = [ "8.8.8.8"
|
||||
];
|
||||
defaultGateway = "146.190.144.1";
|
||||
defaultGateway6 = {
|
||||
address = "";
|
||||
interface = "eth0";
|
||||
};
|
||||
dhcpcd.enable = false;
|
||||
usePredictableInterfaceNames = lib.mkForce false;
|
||||
interfaces = {
|
||||
eth0 = {
|
||||
ipv4.addresses = [
|
||||
{ address="146.190.153.94"; prefixLength=20; }
|
||||
{ address="10.48.0.5"; prefixLength=16; }
|
||||
];
|
||||
ipv6.addresses = [
|
||||
{ address="fe80::20db:d1ff:fe51:4175"; prefixLength=64; }
|
||||
];
|
||||
ipv4.routes = [ { address = "146.190.144.1"; prefixLength = 32; } ];
|
||||
# adding route /128... 'ip route add /128 dev eth0' failed: Error: any valid prefix is expected rather than "/128".
|
||||
#ipv6.routes = [ { address = ""; prefixLength = 128; } ];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
services.udev.extraRules = ''
|
||||
ATTR{address}=="22:db:d1:51:41:75", NAME="eth0"
|
||||
ATTR{address}=="82:4e:3d:d2:3a:9a", NAME="eth1"
|
||||
'';
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
{ inputs, config, pkgs, user, ... }:
|
||||
|
||||
let
|
||||
theme = import ../modules/theme;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./apps.nix
|
||||
../modules/bash
|
||||
../modules/emacs
|
||||
../modules/fcitx5
|
||||
../modules/firefox
|
||||
../modules/git
|
||||
../modules/i3
|
||||
../modules/neovim
|
||||
../modules/picom
|
||||
../modules/polybar
|
||||
../modules/ranger
|
||||
../modules/rofi
|
||||
../modules/startpage
|
||||
../modules/terminal
|
||||
../modules/todo-txt
|
||||
|
||||
../modules/fantasia-archive
|
||||
];
|
||||
|
||||
home.file."./.background-image".source = theme.wallpaper;
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
xdg = {
|
||||
userDirs = rec {
|
||||
enable = true;
|
||||
desktop = "${config.home.homeDirectory}"; # weird hack for disabling desktop in nautilus
|
||||
documents = null;
|
||||
music = null;
|
||||
pictures = "${publicShare}/Pictures";
|
||||
templates = null;
|
||||
publicShare = "${config.home.homeDirectory}/Nextcloud";
|
||||
};
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# Make sure directories are opened in nautilus
|
||||
# .desktop files can be found in /etc/profiles/per-user/elnu/share/applications
|
||||
# mimetypes can be found with the mimetype command:
|
||||
# nix-shell -p perl536Packages.FileMimeInfo
|
||||
"inode/directory" = "org.gnome.Nautilus.desktop";
|
||||
"application/zip" = "org.gnome.FileRoller.desktop";
|
||||
"application/octet-stream" = "org.gnome.GHex.desktop";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.direnv.enable = true;
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = theme.gtkIconTheme pkgs;
|
||||
theme = theme.gtkTheme pkgs;
|
||||
gtk3 = {
|
||||
bookmarks = let
|
||||
home = "file://${config.home.homeDirectory}/";
|
||||
in [
|
||||
"${home}Nextcloud"
|
||||
"${home}Projects"
|
||||
"${home}nix-config Config"
|
||||
"sftp://elnu@elnuhub elnuhub"
|
||||
];
|
||||
# Remove minimize, maximize, and close buttons
|
||||
extraConfig.gtk-decoration-layout = "appmenu:none";
|
||||
};
|
||||
gtk4.extraConfig.gtk-decoration-layout = "appmenu:none";
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "gtk";
|
||||
};
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
{
|
||||
bashrcExtra = ''
|
||||
function v {
|
||||
if [[ $# -eq 0 ]]; then
|
||||
nvim ~/UNTITLED.md
|
||||
else
|
||||
nvim $1
|
||||
fi
|
||||
}
|
||||
|
||||
# Modify killall for wrapped applications, e.g. firefox
|
||||
# killall firefox -> killall firefox || killall .firefox-wrapped
|
||||
function killall {
|
||||
`which killall` $1 || `which killall` .''${1}-wrapped
|
||||
}
|
||||
|
||||
# pandoc macro
|
||||
# pandoc document.md -> pandoc document.md -o document.pdf ...
|
||||
function pdf {
|
||||
pandoc $1 -o ''${1%.*}.pdf --pdf-engine=xelatex -V mainfont="mplus-1c-medium" -V colorlinks=true -V linkcolor=blue
|
||||
}
|
||||
|
||||
# Change to directory when exiting ranger with Q
|
||||
# https://github.com/ranger/ranger/issues/1554#issuecomment-491650123
|
||||
function ranger {
|
||||
local IFS=$'\t\n'
|
||||
local tempfile="$(mktemp -t tmp.XXXXXX)"
|
||||
local ranger_cmd=(
|
||||
command
|
||||
ranger
|
||||
--cmd="map Q chain shell echo %d > "$tempfile"; quitall"
|
||||
)
|
||||
|
||||
''${ranger_cmd[@]} "$@"
|
||||
if [[ -f "$tempfile" ]] && [[ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]]; then
|
||||
cd -- "$(cat "$tempfile")" || return
|
||||
fi
|
||||
command rm -f -- "$tempfile" 2>/dev/null
|
||||
}
|
||||
'';
|
||||
greeter = ''
|
||||
pfetch
|
||||
while true; do
|
||||
f=`fortune`
|
||||
if [ ''${#f} -lt 128 ]; then
|
||||
echo "''${f}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
TERMINAL_STARTED=1
|
||||
'';
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [ pfetch fortune ];
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
g = "git";
|
||||
ga = "g add";
|
||||
gc = "g commit -m ";
|
||||
gu = "ga . && gc";
|
||||
gs = "g status";
|
||||
gi = "g init";
|
||||
gp = "g push";
|
||||
gf = "g pull";
|
||||
gC = "g clone";
|
||||
goops = "g reset --soft HEAD^";
|
||||
|
||||
r = "ranger";
|
||||
rm = "trash-put";
|
||||
emacs = "emacsclient -nw";
|
||||
# Make clear command clear scrollback
|
||||
# https://github.com/kovidgoyal/kitty/issues/268#issuecomment-355765686
|
||||
clear = "printf '\\E[H\\E[3J'";
|
||||
};
|
||||
bashrcExtra = with import ./bashrc.nix; ''
|
||||
${bashrcExtra}
|
||||
if [ -z $TERMINAL_STARTED ] && [ -z $IN_NIX_SHELL ]; then
|
||||
${greeter}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
Reference in new issue