Compare commits

...

28 commits

Author SHA1 Message Date
Toast
fcd583a063 Merge pull request 'Update kde-stuff with changes from main' (#5) from main into kde-stuff
Reviewed-on: http://everest.local:3000/Toast/nix-stuff/pulls/5
2023-07-12 21:27:48 +02:00
7c41dfd9b3 Archie: switch kernel to xanmod 2023-07-12 21:03:06 +02:00
c7206aa602 Update lock file 2023-07-12 19:39:38 +02:00
b7cbebdd05 Common: install file 2023-07-07 23:41:35 +02:00
1c35c527a5 Ssh-agent: add temporary workaround 2023-07-04 09:38:30 +02:00
c690057add KeepassXC: enable ssh-agent integration 2023-07-04 09:37:45 +02:00
70baaaca0f Gitignore: ignore swap files from kate 2023-07-04 08:48:05 +02:00
b202fe478d Desktop: start ssh-agent on login 2023-07-04 08:46:31 +02:00
ade2927e8b Desktop: restructure folder structure 2023-07-04 08:06:17 +02:00
bb6c9ea5d1 Desktop: enable external clipboard on micro 2023-07-03 13:20:11 +02:00
ad8081bba3 Common: configure micro 2023-07-03 12:31:25 +02:00
79006c509b Discord: enable OpenASAR and vencord (again) 2023-07-03 01:03:29 +02:00
8975afd18d Flake: do not set up pkgs 2023-07-03 01:02:09 +02:00
6df7d43e73 Mangohud: hide hud by default 2023-07-02 14:20:57 +02:00
e844d29eae Gaming: enable mangohud 2023-06-30 16:43:30 +02:00
8f7e8e3661 Steam: enable pipewire alsa compatibility 2023-06-30 12:15:13 +02:00
2d69565d91 Firefox: disable widget.use-xdg-desktop-portal.mime-handler 2023-06-30 12:10:07 +02:00
4ba470cf5d Archie: add gaming role 2023-06-29 18:42:41 +02:00
757f60070f Gaming: enable steam 2023-06-29 18:42:24 +02:00
e1d352d019 Add gaming role 2023-06-29 17:35:20 +02:00
1167b979d9 Firefox: always ask where to download files 2023-06-29 16:48:13 +02:00
52f70f8829 Firefox: disable the password manager 2023-06-29 16:47:17 +02:00
f9e71005a4 Firefox: integrate better with kde 2023-06-29 16:36:06 +02:00
7974ca628c Firefox: enable HTTPS only mode 2023-06-29 16:35:22 +02:00
ded324e0f3 KeepassXC: configure keepass and set up autostart 2023-06-28 14:30:54 +02:00
25ca3bb7cc Install KeePassXC using home-manager 2023-06-27 00:40:33 +02:00
6e6fa9c599 Archie: mount root subvolume of ssd 2023-06-27 00:26:10 +02:00
87f78bac52 Archie: fix typo in archie's hardware-configuration.nix 2023-06-27 00:12:18 +02:00
18 changed files with 250 additions and 38 deletions

4
.gitignore vendored
View file

@ -2,3 +2,7 @@
# Ignore build outputs from performing a nix-build or `nix build` command
result
result-*
# ---> Kate
# Ignore kate's swap files
*.kate-swp

24
flake.lock generated
View file

@ -50,11 +50,11 @@
]
},
"locked": {
"lastModified": 1687647343,
"narHash": "sha256-1/o/i9KEFOBdlF9Cs04kBcqDFbYMt6W4SMqGa+QnnaI=",
"lastModified": 1689134369,
"narHash": "sha256-0G9dutIvhS/WUr3Awcnqw71g8EVVvvkOhVDnDDbY4Fw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "0ee5ab611dc1fbb5180bd7d88d2aeb7841a4d179",
"rev": "e42fb59768f0305085abde0dd27ab5e0cc15420c",
"type": "github"
},
"original": {
@ -70,11 +70,11 @@
]
},
"locked": {
"lastModified": 1687163790,
"narHash": "sha256-CmG/ZdswJrWM0CMgJiVyWfO6LqaI4SKEAx9IrnYDrpI=",
"lastModified": 1687871164,
"narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ac53777f52929bc82efcd2830bfc5aa60bcb4337",
"rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38",
"type": "github"
},
"original": {
@ -101,11 +101,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1687379288,
"narHash": "sha256-cSuwfiqYfeVyqzCRkU9AvLTysmEuSal8nh6CYr+xWog=",
"lastModified": 1689137672,
"narHash": "sha256-QZoHxr0a73x6rQcAo5CiwYpysHbSnk7lAR8/16um7mM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ef0bc3976340dab9a4e087a0bcff661a8b2e87f3",
"rev": "98da3dd0de6660d4abed7bb74e748694bd803413",
"type": "github"
},
"original": {
@ -116,11 +116,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1686960236,
"narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=",
"lastModified": 1689098530,
"narHash": "sha256-fxc/9f20wRyo/5ydkmZkX/Sh/ULa7RcT8h+cUv8p/44=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "04af42f3b31dba0ef742d254456dc4c14eedac86",
"rev": "f2406198ea0e4e37d4380d0e20336c575b8f8ef9",
"type": "github"
},
"original": {

View file

@ -44,20 +44,12 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl
nixosConfigurations = {
Archie = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
pkgs = import nixpkgs-unstable {
system = "x86_64-linux";
config = { allowUnfree = true; }; # TODO: Find why this doesn't work
overlays =
let
discordOverlay = self: super: {
discord = super.discord.override {
withOpenASAR = true;
withVencord = true;
};
};
in
[ discordOverlay ];
};
/*
I used to set up nixpkgs in the flake, but doing that made
defining overlays in modules impossible (or at least I could
not figure out how)
Also has nice side effect of making it easier to add new systems :3
*/
modules = [
# Needed for nix-index
{ nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; }
@ -66,16 +58,13 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl
./roles/common
./roles/desktop
./roles/kde
./roles/gaming
./machines/Archie
];
};
Everest = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
pkgs = import nixpkgs {
system = "x86_64-linux";
config = { allowUnfree = false; }; # TODO: Find why this doesn't work
};
modules = [
# Needed for nix-index
{ nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; }

View file

@ -18,6 +18,8 @@
};
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
networking.hostName = "Archie"; # Define your hostname.
networking.networkmanager.enable = true; # Enable networking

View file

@ -9,6 +9,7 @@
];
# Enabke support for the Xbox One wireless dongle
# Enable support for the Xbox One wireless dongle
hardware.xone.enable = true;
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
@ -39,6 +40,19 @@
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 = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";

View file

@ -4,6 +4,7 @@
imports = [
./htop.nix
./nix.nix
./micro.nix
./nix-index.nix
./command-not-found.nix
];
@ -11,7 +12,7 @@
environment.systemPackages = with pkgs; [
speedtest-cli
bat
micro
file
nvd
ncdu
tree

View file

@ -0,0 +1,17 @@
{ config, pkgs, ... }:
{
home-manager = {
users.toast = { config, pkgs, ... }:
{
programs.micro = {
enable = true;
settings = {
clipboard = "terminal";
indentchar = "|";
softwrap = true;
};
};
};
};
}

4
roles/desktop/default.nix Executable file → Normal file
View file

@ -2,7 +2,7 @@
{
imports = [
./discord.nix
./firefox.nix
./services
./programs
];
}

View file

@ -0,0 +1,10 @@
{ ... }:
{
imports = [
./discord.nix
./firefox.nix
./micro.nix
./keepassxc.nix
];
}

View file

@ -1,9 +1,5 @@
{ 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
discordOverlay = self: super: {
discord = super.discord.override {
@ -12,7 +8,8 @@
};
};
in
[ discordOverlay ]; */
{
nixpkgs.overlays = [ discordOverlay ];
users.users.toast.packages = with pkgs; [
discord
];

View file

@ -31,7 +31,28 @@
"Value" = true;
"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" = {
"Autoplay" = {
"Allow" = [ "https://www.youtube.com" ];

View file

@ -0,0 +1,69 @@
{ 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
'';
};
};
};
};
}

View file

@ -0,0 +1,21 @@
{ 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 ];
};
};
}

View file

@ -0,0 +1,7 @@
{ ... }:
{
imports = [
./ssh-agent.nix
];
}

View file

@ -0,0 +1,21 @@
{ 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
'';
}

8
roles/gaming/default.nix Executable file
View file

@ -0,0 +1,8 @@
{ ... }:
{
imports = [
./steam.nix
./mangohud.nix
];
}

20
roles/gaming/mangohud.nix Normal file
View file

@ -0,0 +1,20 @@
{ 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;
};
};
};
}

11
roles/gaming/steam.nix Normal file
View file

@ -0,0 +1,11 @@
{ 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;
}