Compare commits
No commits in common. "fcd583a063c8d5b8ed5e18e772c61f4f7b265277" and "31d1018267c7b49a5a851901e6064f66388d3469" have entirely different histories.
fcd583a063
...
31d1018267
18 changed files with 38 additions and 250 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -2,7 +2,3 @@
|
||||||
# Ignore build outputs from performing a nix-build or `nix build` command
|
# Ignore build outputs from performing a nix-build or `nix build` command
|
||||||
result
|
result
|
||||||
result-*
|
result-*
|
||||||
|
|
||||||
# ---> Kate
|
|
||||||
# Ignore kate's swap files
|
|
||||||
*.kate-swp
|
|
||||||
|
|
|
||||||
24
flake.lock
generated
24
flake.lock
generated
|
|
@ -50,11 +50,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689134369,
|
"lastModified": 1687647343,
|
||||||
"narHash": "sha256-0G9dutIvhS/WUr3Awcnqw71g8EVVvvkOhVDnDDbY4Fw=",
|
"narHash": "sha256-1/o/i9KEFOBdlF9Cs04kBcqDFbYMt6W4SMqGa+QnnaI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "e42fb59768f0305085abde0dd27ab5e0cc15420c",
|
"rev": "0ee5ab611dc1fbb5180bd7d88d2aeb7841a4d179",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -70,11 +70,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1687871164,
|
"lastModified": 1687163790,
|
||||||
"narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=",
|
"narHash": "sha256-CmG/ZdswJrWM0CMgJiVyWfO6LqaI4SKEAx9IrnYDrpI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38",
|
"rev": "ac53777f52929bc82efcd2830bfc5aa60bcb4337",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -101,11 +101,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689137672,
|
"lastModified": 1687379288,
|
||||||
"narHash": "sha256-QZoHxr0a73x6rQcAo5CiwYpysHbSnk7lAR8/16um7mM=",
|
"narHash": "sha256-cSuwfiqYfeVyqzCRkU9AvLTysmEuSal8nh6CYr+xWog=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "98da3dd0de6660d4abed7bb74e748694bd803413",
|
"rev": "ef0bc3976340dab9a4e087a0bcff661a8b2e87f3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -116,11 +116,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689098530,
|
"lastModified": 1686960236,
|
||||||
"narHash": "sha256-fxc/9f20wRyo/5ydkmZkX/Sh/ULa7RcT8h+cUv8p/44=",
|
"narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f2406198ea0e4e37d4380d0e20336c575b8f8ef9",
|
"rev": "04af42f3b31dba0ef742d254456dc4c14eedac86",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
25
flake.nix
25
flake.nix
|
|
@ -44,12 +44,20 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
Archie = nixpkgs-unstable.lib.nixosSystem {
|
Archie = nixpkgs-unstable.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
/*
|
pkgs = import nixpkgs-unstable {
|
||||||
I used to set up nixpkgs in the flake, but doing that made
|
system = "x86_64-linux";
|
||||||
defining overlays in modules impossible (or at least I could
|
config = { allowUnfree = true; }; # TODO: Find why this doesn't work
|
||||||
not figure out how)
|
overlays =
|
||||||
Also has nice side effect of making it easier to add new systems :3
|
let
|
||||||
*/
|
discordOverlay = self: super: {
|
||||||
|
discord = super.discord.override {
|
||||||
|
withOpenASAR = true;
|
||||||
|
withVencord = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
[ discordOverlay ];
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
# Needed for nix-index
|
# Needed for nix-index
|
||||||
{ nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; }
|
{ nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; }
|
||||||
|
|
@ -58,13 +66,16 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl
|
||||||
./roles/common
|
./roles/common
|
||||||
./roles/desktop
|
./roles/desktop
|
||||||
./roles/kde
|
./roles/kde
|
||||||
./roles/gaming
|
|
||||||
./machines/Archie
|
./machines/Archie
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
Everest = nixpkgs.lib.nixosSystem {
|
Everest = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
config = { allowUnfree = false; }; # TODO: Find why this doesn't work
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
# Needed for nix-index
|
# Needed for nix-index
|
||||||
{ nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; }
|
{ nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; }
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@
|
||||||
};
|
};
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
|
|
||||||
|
|
||||||
networking.hostName = "Archie"; # Define your hostname.
|
networking.hostName = "Archie"; # Define your hostname.
|
||||||
networking.networkmanager.enable = true; # Enable networking
|
networking.networkmanager.enable = true; # Enable networking
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enabke support for the Xbox One wireless dongle
|
# Enabke support for the Xbox One wireless dongle
|
||||||
# Enable support for the Xbox One wireless dongle
|
|
||||||
hardware.xone.enable = true;
|
hardware.xone.enable = true;
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
|
|
@ -40,19 +39,6 @@
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
Mount the root subvolume of the SSD
|
|
||||||
This is helpful for getting things from
|
|
||||||
my old Arch install, as well as for running btdu
|
|
||||||
*/
|
|
||||||
fileSystems = {
|
|
||||||
"/mnt/ssd" = {
|
|
||||||
device = config.fileSystems."/".device;
|
|
||||||
fsType = config.fileSystems."/".fsType;
|
|
||||||
options = [ "subvolid=5" "ro" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
imports = [
|
imports = [
|
||||||
./htop.nix
|
./htop.nix
|
||||||
./nix.nix
|
./nix.nix
|
||||||
./micro.nix
|
|
||||||
./nix-index.nix
|
./nix-index.nix
|
||||||
./command-not-found.nix
|
./command-not-found.nix
|
||||||
];
|
];
|
||||||
|
|
@ -12,7 +11,7 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
speedtest-cli
|
speedtest-cli
|
||||||
bat
|
bat
|
||||||
file
|
micro
|
||||||
nvd
|
nvd
|
||||||
ncdu
|
ncdu
|
||||||
tree
|
tree
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
home-manager = {
|
|
||||||
users.toast = { config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.micro = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
clipboard = "terminal";
|
|
||||||
indentchar = "|";
|
|
||||||
softwrap = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
4
roles/desktop/default.nix
Normal file → Executable file
4
roles/desktop/default.nix
Normal file → Executable file
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./services
|
./discord.nix
|
||||||
./programs
|
./firefox.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# TODO: Find out why this does not do anything. If I put this
|
||||||
|
# on flake.nix it does work, so it's not completely wrong.
|
||||||
|
/* nixpkgs.overlays =
|
||||||
let
|
let
|
||||||
discordOverlay = self: super: {
|
discordOverlay = self: super: {
|
||||||
discord = super.discord.override {
|
discord = super.discord.override {
|
||||||
|
|
@ -8,8 +12,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
[ discordOverlay ]; */
|
||||||
nixpkgs.overlays = [ discordOverlay ];
|
|
||||||
users.users.toast.packages = with pkgs; [
|
users.users.toast.packages = with pkgs; [
|
||||||
discord
|
discord
|
||||||
];
|
];
|
||||||
|
|
@ -31,28 +31,7 @@
|
||||||
"Value" = true;
|
"Value" = true;
|
||||||
"Status" = "default";
|
"Status" = "default";
|
||||||
};
|
};
|
||||||
"dom.security.https_only_mode" = {
|
|
||||||
"Value" = true;
|
|
||||||
"Status" = "locked";
|
|
||||||
};
|
};
|
||||||
# Make firefox use the kde file picker
|
|
||||||
"widget.use-xdg-desktop-portal.file-picker" = {
|
|
||||||
"Value" = 1;
|
|
||||||
"Status" = "default";
|
|
||||||
};
|
|
||||||
/*
|
|
||||||
https://wiki.archlinux.org/title/Firefox#KDE_integration tells me to enable this,
|
|
||||||
but strangely enough doing so makes firefox ask to be set as the default browser
|
|
||||||
every time you start it up, so I'll disable it
|
|
||||||
*/
|
|
||||||
"widget.use-xdg-desktop-portal.mime-handler" = {
|
|
||||||
"Value" = 0;
|
|
||||||
"Status" = "default";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"PromptForDownloadLocation" = true;
|
|
||||||
# I use an external password manager, so the built in one just bothers me
|
|
||||||
"PasswordManagerEnabled" = false;
|
|
||||||
"Permissions" = {
|
"Permissions" = {
|
||||||
"Autoplay" = {
|
"Autoplay" = {
|
||||||
"Allow" = [ "https://www.youtube.com" ];
|
"Allow" = [ "https://www.youtube.com" ];
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./discord.nix
|
|
||||||
./firefox.nix
|
|
||||||
./micro.nix
|
|
||||||
./keepassxc.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
kpxcSettings = lib.generators.toINI {} {
|
|
||||||
# Not sure what changing this does, I'll leave it alone
|
|
||||||
General = {
|
|
||||||
ConfigVersion = 2;
|
|
||||||
MinimizeAfterUnlock = true;
|
|
||||||
};
|
|
||||||
GUI = {
|
|
||||||
ApplicationTheme = "classic";
|
|
||||||
MinimizeOnStartup = false;
|
|
||||||
MinimizeOnClose = true;
|
|
||||||
MinimizeToTray = true;
|
|
||||||
ShowTrayIcon = true;
|
|
||||||
# 0 is icons, 1 is text, 2 is text next to icons, 3 is text under icons, and 4 is follow style
|
|
||||||
ToolButtonStyle = 0; # Would choose 4 but it's too big for a small window
|
|
||||||
# monochrome-light, monochrome-dark or colorful
|
|
||||||
TrayIconAppearance = "monochrome-light";
|
|
||||||
};
|
|
||||||
SSHAgent.Enabled = true;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
# I'm only using keepass on my user, so I'm installing it with home-manager
|
|
||||||
home-manager = {
|
|
||||||
/*
|
|
||||||
TODO: move home-manager settings into the common role
|
|
||||||
They are not keepass specific, so they really should
|
|
||||||
not be here. I'm too lazy to do it now tho :P
|
|
||||||
*/
|
|
||||||
backupFileExtension = "backup";
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
|
|
||||||
extraSpecialArgs = { kpxcSettings = kpxcSettings; };
|
|
||||||
users.toast = { config, pkgs, kpxcSettings, ... }: {
|
|
||||||
home = {
|
|
||||||
stateVersion = "23.05";
|
|
||||||
packages = [ pkgs.keepassxc ];
|
|
||||||
# No module for KeePassXC config :(
|
|
||||||
file = {
|
|
||||||
".config/keepassxc/keepassxc.ini".text = kpxcSettings;
|
|
||||||
# For some reason the autostart .desktop is not the same as the regular one
|
|
||||||
".config/autostart/org.keepassxc.KeePassXC.desktop".text = ''
|
|
||||||
[Desktop Entry]
|
|
||||||
Name=KeePassXC
|
|
||||||
GenericName=Password Manager
|
|
||||||
Exec=keepassxc
|
|
||||||
TryExec=keepassxc
|
|
||||||
Icon=keepassxc
|
|
||||||
StartupWMClass=keepassxc
|
|
||||||
StartupNotify=true
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
Version=1.0
|
|
||||||
Categories=Utility;Security;Qt;
|
|
||||||
MimeType=application/x-keepass2;
|
|
||||||
X-GNOME-Autostart-enabled=true
|
|
||||||
X-GNOME-Autostart-Delay=2
|
|
||||||
X-KDE-autostart-after=panel
|
|
||||||
X-LXQt-Need-Tray=true
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
home-manager = {
|
|
||||||
users.toast = { config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.micro = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
# Use xclip/wl-clipboard for copying and pasting
|
|
||||||
clipboard = lib.mkForce "external";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
/*
|
|
||||||
On a kde wayland session micro uses xsel or xclip instead of wl-clipboard
|
|
||||||
which doesn't work, so I only install wl-clipboard here to make micro use it
|
|
||||||
*/
|
|
||||||
home.packages = with pkgs; [ wl-clipboard ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./ssh-agent.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.ssh.startAgent = true;
|
|
||||||
/*
|
|
||||||
Home assistant added an option that does this
|
|
||||||
https://github.com/nix-community/home-manager/commit/2d9210f25ed18d5d4e11e6b886de4027c0c51a94
|
|
||||||
but since I still need to fix home-manager's envvars not applying I'll stick to the NixOS one
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
TODO: fix SSH_AUTH_SOCK not being set in Plasma
|
|
||||||
Turns out the NixOS module also has issues :3
|
|
||||||
The env is set but only in bash, not in the DE, so
|
|
||||||
keepass can't pick it up. For now I'll just set it manually
|
|
||||||
*/
|
|
||||||
home-manager.users.toast.xdg.configFile."plasma-workspace/env/ssh-agent.sh".text = ''
|
|
||||||
if [[ -z "$SSH_AUTH_SOCK" ]]; then
|
|
||||||
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./steam.nix
|
|
||||||
./mangohud.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# This does the same as enableSessionWide does on the mangohud config
|
|
||||||
environment.sessionVariables = { MANGOHUD = "1"; MANGOHUD_DLSYM = "1"; };
|
|
||||||
|
|
||||||
home-manager.users.toast = { config, ... }:
|
|
||||||
{
|
|
||||||
programs.mangohud = {
|
|
||||||
enable = true;
|
|
||||||
# TODO: fix envvars set by home manager not applying for some reason
|
|
||||||
# This only works for Vulkan, openGL programs still need the mangohud wrapper
|
|
||||||
enableSessionWide = true;
|
|
||||||
settings = {
|
|
||||||
preset = 4;
|
|
||||||
no_display = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
# Doubt that I'll use it, but I'll enable it anyways
|
|
||||||
remotePlay.openFirewall = true;
|
|
||||||
};
|
|
||||||
# Some linux native games (rise of the tomb raider) use alsa for sound
|
|
||||||
services.pipewire.alsa.enable = true;
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue