moves home-manager to hostname specific configs
This commit is contained in:
parent
1e7baa0365
commit
7134d0c29d
@ -80,6 +80,7 @@ If you add a new system you should add the relevant files to these paths.
|
||||
- `nconfig/nixos/hardware/`: Contains the hardware configurations for the different systems.
|
||||
- `config/ssh/authorized_keys`: Contains the public keys per hostname that will be symlinked to the `~/.ssh/authorized_keys` file.
|
||||
- `config/nixos/flake.nix`: Contains an array `nixosConfigurations` where you should be adding the new system hostname and relevant configuration.
|
||||
- `config/home-manager/flake.nix`: Contains an array `homeConfigurations` where you should be adding the new system hostname and relevant configuration.
|
||||
|
||||
### Adding a new system
|
||||
|
||||
|
@ -211,7 +211,7 @@ git_repos() {
|
||||
}
|
||||
|
||||
homemanager() {
|
||||
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager switch -b backup
|
||||
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager switch -b backup --flake .#$DOTF_HOSTNAME
|
||||
}
|
||||
|
||||
ensure_homemanager_installed() {
|
||||
|
100
config/home-manager/flake.lock
generated
Normal file
100
config/home-manager/flake.lock
generated
Normal file
@ -0,0 +1,100 @@
|
||||
{
|
||||
"nodes": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726989464,
|
||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1730327045,
|
||||
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "080166c15633801df010977d9d7474b4a6c549d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-go": {
|
||||
"locked": {
|
||||
"lastModified": 1728863046,
|
||||
"narHash": "sha256-DZBO2465PL5V89e8hFSJewyH4QbCPpW3ssws7ckT/0A=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-vscode": {
|
||||
"locked": {
|
||||
"lastModified": 1728863046,
|
||||
"narHash": "sha256-DZBO2465PL5V89e8hFSJewyH4QbCPpW3ssws7ckT/0A=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-zed": {
|
||||
"locked": {
|
||||
"lastModified": 1729850857,
|
||||
"narHash": "sha256-WvLXzNNnnw+qpFOmgaM3JUlNEH+T4s22b5i2oyyCpXE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "41dea55321e5a999b17033296ac05fe8a8b5a257",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "41dea55321e5a999b17033296ac05fe8a8b5a257",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-go": "nixpkgs-go",
|
||||
"nixpkgs-vscode": "nixpkgs-vscode",
|
||||
"nixpkgs-zed": "nixpkgs-zed"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
95
config/home-manager/flake.nix
Normal file
95
config/home-manager/flake.nix
Normal file
@ -0,0 +1,95 @@
|
||||
{
|
||||
description = "menno's dotfiles";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
|
||||
# Pinned versions for specific packages
|
||||
nixpkgs-go.url = "github:nixos/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732";
|
||||
nixpkgs-vscode.url = "github:nixos/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732";
|
||||
nixpkgs-zed.url = "github:nixos/nixpkgs/41dea55321e5a999b17033296ac05fe8a8b5a257";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-go,
|
||||
nixpkgs-vscode,
|
||||
nixpkgs-zed,
|
||||
home-manager,
|
||||
}:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
pkgs-go = import nixpkgs-go {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
pkgs-vscode = import nixpkgs-vscode {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
pkgs-zed = import nixpkgs-zed {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
homeConfigurations = {
|
||||
"mennos-gamingpc" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
pkgs
|
||||
pkgs-go
|
||||
pkgs-vscode
|
||||
pkgs-zed
|
||||
;
|
||||
isServer = false;
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-server" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit pkgs pkgs-go;
|
||||
isServer = true;
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-laptop" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
pkgs
|
||||
pkgs-go
|
||||
pkgs-vscode
|
||||
pkgs-zed
|
||||
;
|
||||
isServer = false;
|
||||
};
|
||||
};
|
||||
|
||||
"homeserver-pc" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit pkgs pkgs-go;
|
||||
isServer = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,116 +1,40 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./packages/default.nix
|
||||
./fonts.nix
|
||||
./gnome-extensions.nix
|
||||
./dconf.nix
|
||||
./keyboard-shortcuts.nix
|
||||
./virtualization.nix
|
||||
./packages.nix
|
||||
];
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
isServer ? false,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = pkg: true;
|
||||
};
|
||||
|
||||
home.username = "menno";
|
||||
home.homeDirectory = "/home/menno";
|
||||
home.stateVersion = "24.05";
|
||||
imports =
|
||||
[ ./packages/common/default.nix ]
|
||||
++ (
|
||||
if isServer then
|
||||
[
|
||||
./packages/server/default.nix
|
||||
./server/default.nix
|
||||
]
|
||||
else
|
||||
[
|
||||
./packages/workstation/default.nix
|
||||
./workstation/default.nix
|
||||
]
|
||||
);
|
||||
|
||||
# Default applications
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# Zen Browser
|
||||
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"text/html" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/http" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/https" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
|
||||
# Geary
|
||||
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];
|
||||
|
||||
# Loupe (Image Viewer)
|
||||
"image/jpeg" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/png" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/gif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/webp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/tiff" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-tga" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd-ms.dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/bmp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.microsoft.icon" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.radiance" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-exr" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-bitmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-graymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-pixmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-anymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-qoi" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml-compressed" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/avif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/heic" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/jxl" = [ "org.gnome.Loupe.desktop" ];
|
||||
|
||||
# VLC (Video Player)
|
||||
"video/x-ogm+ogg" = [ "vlc.desktop" ];
|
||||
"video/3gp" = [ "vlc.desktop" ];
|
||||
"video/3gpp" = [ "vlc.desktop" ];
|
||||
"video/3gpp2" = [ "vlc.desktop" ];
|
||||
"video/dv" = [ "vlc.desktop" ];
|
||||
"video/divx" = [ "vlc.desktop" ];
|
||||
"video/fli" = [ "vlc.desktop" ];
|
||||
"video/flv" = [ "vlc.desktop" ];
|
||||
"video/mp2t" = [ "vlc.desktop" ];
|
||||
"video/mp4" = [ "vlc.desktop" ];
|
||||
"video/mp4v-es" = [ "vlc.desktop" ];
|
||||
"video/mpeg" = [ "vlc.desktop" ];
|
||||
"video/mpeg-system" = [ "vlc.desktop" ];
|
||||
"video/msvideo" = [ "vlc.desktop" ];
|
||||
"video/ogg" = [ "vlc.desktop" ];
|
||||
"video/quicktime" = [ "vlc.desktop" ];
|
||||
"video/vnd.divx" = [ "vlc.desktop" ];
|
||||
"video/vnd.mpegurl" = [ "vlc.desktop" ];
|
||||
"video/vnd.rn-realvideo" = [ "vlc.desktop" ];
|
||||
"video/webm" = [ "vlc.desktop" ];
|
||||
"video/x-anim" = [ "vlc.desktop" ];
|
||||
"video/x-avi" = [ "vlc.desktop" ];
|
||||
"video/x-flc" = [ "vlc.desktop" ];
|
||||
"video/x-fli" = [ "vlc.desktop" ];
|
||||
"video/x-flv" = [ "vlc.desktop" ];
|
||||
"video/x-m4v" = [ "vlc.desktop" ];
|
||||
"video/x-matroska" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg2" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf-plugin" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asx" = [ "vlc.desktop" ];
|
||||
"video/x-msvideo" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wm" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmv" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmx" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wvx" = [ "vlc.desktop" ];
|
||||
"video/x-nsv" = [ "vlc.desktop" ];
|
||||
"video/x-theora" = [ "vlc.desktop" ];
|
||||
"video/x-theora+ogg" = [ "vlc.desktop" ];
|
||||
"video/x-ogm" = [ "vlc.desktop" ];
|
||||
"video/avi" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg-system" = [ "vlc.desktop" ];
|
||||
|
||||
# Totem (for those few formats that default to it)
|
||||
"video/vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/vnd.vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-flic" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-mjpeg" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-totem-stream" = [ "org.gnome.Totem.desktop" ];
|
||||
home = {
|
||||
username = "menno";
|
||||
homeDirectory = "/home/menno";
|
||||
stateVersion = "24.05";
|
||||
sessionVariables = {
|
||||
PATH = "${config.home.homeDirectory}/go/bin:$PATH"; # Removed extra asterisks
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
PATH = "${config.home.homeDirectory}/go/bin:$PATH";
|
||||
};
|
||||
}
|
||||
|
12
config/home-manager/packages/common/go.nix
Normal file
12
config/home-manager/packages/common/go.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-go,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.go = {
|
||||
enable = true;
|
||||
package = pkgs-go.go;
|
||||
};
|
||||
}
|
@ -86,46 +86,5 @@
|
||||
cmatrix
|
||||
figlet
|
||||
lolcat
|
||||
|
||||
# GUI Applications
|
||||
## Utilities
|
||||
mission-center
|
||||
flameshot
|
||||
gnome.gnome-tweaks
|
||||
pinta
|
||||
bottles
|
||||
trayscale
|
||||
spacedrive
|
||||
|
||||
## Chat Apps
|
||||
telegram-desktop
|
||||
betterdiscordctl
|
||||
vesktop
|
||||
whatsapp-for-linux
|
||||
signal-desktop
|
||||
|
||||
## Multimedia
|
||||
spotify
|
||||
plex-media-player
|
||||
vlc
|
||||
|
||||
## Astronomy
|
||||
stellarium
|
||||
|
||||
## Games
|
||||
### Open-source games
|
||||
openra
|
||||
xonotic
|
||||
mindustry
|
||||
wesnoth
|
||||
shattered-pixel-dungeon
|
||||
|
||||
### Games launchers
|
||||
lutris
|
||||
heroic
|
||||
|
||||
### Game utilities
|
||||
protonup-qt
|
||||
protontricks
|
||||
];
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
pinnedPkgs = import (fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/d4f247e89f6e10120f911e2e2d2254a050d0f732.tar.gz";
|
||||
# Update this SHA256 when a new version is required ^^^
|
||||
# You can find them here: https://www.nixhub.io/packages/vscode
|
||||
}) { };
|
||||
in
|
||||
{
|
||||
# Use the pinned Go for the programs configuration
|
||||
programs.go = {
|
||||
enable = true;
|
||||
package = pinnedPkgs.go;
|
||||
};
|
||||
}
|
12
config/home-manager/packages/server/default.nix
Normal file
12
config/home-manager/packages/server/default.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
4
config/home-manager/packages/server/packages.nix
Normal file
4
config/home-manager/packages/server/packages.nix
Normal file
@ -0,0 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ ];
|
||||
}
|
12
config/home-manager/packages/workstation/default.nix
Normal file
12
config/home-manager/packages/workstation/default.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
49
config/home-manager/packages/workstation/packages.nix
Normal file
49
config/home-manager/packages/workstation/packages.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# GUI Applications
|
||||
## Utilities
|
||||
mission-center
|
||||
flameshot
|
||||
gnome.gnome-tweaks
|
||||
pinta
|
||||
bottles
|
||||
trayscale
|
||||
spacedrive
|
||||
|
||||
## Chat Apps
|
||||
telegram-desktop
|
||||
betterdiscordctl
|
||||
vesktop
|
||||
whatsapp-for-linux
|
||||
signal-desktop
|
||||
|
||||
## Multimedia
|
||||
spotify
|
||||
plex-media-player
|
||||
vlc
|
||||
|
||||
## Astronomy
|
||||
stellarium
|
||||
|
||||
## Games
|
||||
### Open-source games
|
||||
openra
|
||||
xonotic
|
||||
mindustry
|
||||
wesnoth
|
||||
shattered-pixel-dungeon
|
||||
|
||||
### Games launchers
|
||||
lutris
|
||||
heroic
|
||||
|
||||
### Game utilities
|
||||
protonup-qt
|
||||
protontricks
|
||||
|
||||
### Virtualization
|
||||
virt-manager
|
||||
virt-viewer
|
||||
];
|
||||
}
|
@ -1,16 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
pinnedPkgs = import (fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/d4f247e89f6e10120f911e2e2d2254a050d0f732.tar.gz";
|
||||
# Update this SHA256 when a new version is required ^^^
|
||||
# You can find them here: https://www.nixhub.io/packages/vscode
|
||||
}) { };
|
||||
in
|
||||
{
|
||||
# Use the pinned VSCode for the programs.vscode configuration
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-vscode,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pinnedPkgs.vscode;
|
||||
package = pkgs-vscode.vscode;
|
||||
mutableExtensionsDir = true;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
ms-azuretools.vscode-docker
|
||||
@ -42,17 +39,5 @@ in
|
||||
github.copilot
|
||||
github.copilot-chat
|
||||
];
|
||||
# ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
# {
|
||||
# name = "warpnet.salt-lint";
|
||||
# publisher = "warpnet";
|
||||
# version = "latest";
|
||||
# }
|
||||
# {
|
||||
# name = "mguellsegarra.highlight-on-copy";
|
||||
# publisher = "mguellsegarra";
|
||||
# version = "latest";
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
}
|
9
config/home-manager/packages/workstation/zed-editor.nix
Normal file
9
config/home-manager/packages/workstation/zed-editor.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-zed,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = [ pkgs-zed.zed-editor ];
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
pinnedPkgs = import (fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/41dea55321e5a999b17033296ac05fe8a8b5a257.tar.gz";
|
||||
# Update this SHA256 when a new version is required ^^^
|
||||
# You can find them here: https://www.nixhub.io/packages/zed-editor
|
||||
}) { };
|
||||
in
|
||||
{
|
||||
# Add zed-editor to your home packages
|
||||
home.packages = [
|
||||
pinnedPkgs.zed-editor
|
||||
];
|
||||
}
|
12
config/home-manager/server/default.nix
Normal file
12
config/home-manager/server/default.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
virt-manager
|
||||
virt-viewer
|
||||
qemu
|
||||
OVMF
|
||||
];
|
||||
}
|
93
config/home-manager/workstation/default-apps.nix
Normal file
93
config/home-manager/workstation/default-apps.nix
Normal file
@ -0,0 +1,93 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Default applications
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# Zen Browser
|
||||
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"text/html" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/http" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/https" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
|
||||
# Geary
|
||||
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];
|
||||
|
||||
# Loupe (Image Viewer)
|
||||
"image/jpeg" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/png" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/gif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/webp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/tiff" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-tga" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd-ms.dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/bmp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.microsoft.icon" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.radiance" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-exr" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-bitmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-graymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-pixmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-anymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-qoi" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml-compressed" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/avif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/heic" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/jxl" = [ "org.gnome.Loupe.desktop" ];
|
||||
|
||||
# VLC (Video Player)
|
||||
"video/x-ogm+ogg" = [ "vlc.desktop" ];
|
||||
"video/3gp" = [ "vlc.desktop" ];
|
||||
"video/3gpp" = [ "vlc.desktop" ];
|
||||
"video/3gpp2" = [ "vlc.desktop" ];
|
||||
"video/dv" = [ "vlc.desktop" ];
|
||||
"video/divx" = [ "vlc.desktop" ];
|
||||
"video/fli" = [ "vlc.desktop" ];
|
||||
"video/flv" = [ "vlc.desktop" ];
|
||||
"video/mp2t" = [ "vlc.desktop" ];
|
||||
"video/mp4" = [ "vlc.desktop" ];
|
||||
"video/mp4v-es" = [ "vlc.desktop" ];
|
||||
"video/mpeg" = [ "vlc.desktop" ];
|
||||
"video/mpeg-system" = [ "vlc.desktop" ];
|
||||
"video/msvideo" = [ "vlc.desktop" ];
|
||||
"video/ogg" = [ "vlc.desktop" ];
|
||||
"video/quicktime" = [ "vlc.desktop" ];
|
||||
"video/vnd.divx" = [ "vlc.desktop" ];
|
||||
"video/vnd.mpegurl" = [ "vlc.desktop" ];
|
||||
"video/vnd.rn-realvideo" = [ "vlc.desktop" ];
|
||||
"video/webm" = [ "vlc.desktop" ];
|
||||
"video/x-anim" = [ "vlc.desktop" ];
|
||||
"video/x-avi" = [ "vlc.desktop" ];
|
||||
"video/x-flc" = [ "vlc.desktop" ];
|
||||
"video/x-fli" = [ "vlc.desktop" ];
|
||||
"video/x-flv" = [ "vlc.desktop" ];
|
||||
"video/x-m4v" = [ "vlc.desktop" ];
|
||||
"video/x-matroska" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg2" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf-plugin" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asx" = [ "vlc.desktop" ];
|
||||
"video/x-msvideo" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wm" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmv" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmx" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wvx" = [ "vlc.desktop" ];
|
||||
"video/x-nsv" = [ "vlc.desktop" ];
|
||||
"video/x-theora" = [ "vlc.desktop" ];
|
||||
"video/x-theora+ogg" = [ "vlc.desktop" ];
|
||||
"video/x-ogm" = [ "vlc.desktop" ];
|
||||
"video/avi" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg-system" = [ "vlc.desktop" ];
|
||||
|
||||
# Totem (for those few formats that default to it)
|
||||
"video/vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/vnd.vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-flic" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-mjpeg" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-totem-stream" = [ "org.gnome.Totem.desktop" ];
|
||||
};
|
||||
};
|
||||
}
|
12
config/home-manager/workstation/default.nix
Normal file
12
config/home-manager/workstation/default.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
@ -1,6 +1,12 @@
|
||||
{ config, pkgs, ... }: {
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
qemu
|
||||
OVMF
|
||||
];
|
||||
|
||||
virtualisation = {
|
||||
docker = {
|
||||
enable = true;
|
||||
|
9
setup.sh
9
setup.sh
@ -8,8 +8,7 @@ if [ -f $HOME/.dotfiles-setup ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if nixos-version is available
|
||||
ensure_nixos() {
|
||||
install_nix() {
|
||||
if [ -x "$(command -v nixos-version)" ]; then
|
||||
tput setaf 2
|
||||
echo "Detected NixOS, skipping Nix setup."
|
||||
@ -151,9 +150,9 @@ prepare_hostname() {
|
||||
}
|
||||
|
||||
prepare_hostname
|
||||
ensure_nixos
|
||||
install_home_manager
|
||||
setup_symlinks
|
||||
install_nix
|
||||
install_home_manager
|
||||
|
||||
# Rebuild NixOS
|
||||
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --flake .#$DOTF_HOSTNAME --impure
|
||||
@ -165,7 +164,7 @@ if [ $? -ne 0 ]; then
|
||||
fi
|
||||
|
||||
# Rebuild Home Manager
|
||||
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager switch
|
||||
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager switch --flake .#$DOTF_HOSTNAME --impure
|
||||
if [ $? -ne 0 ]; then
|
||||
tput setaf 1
|
||||
echo "Failed to rebuild Home Manager. Exiting..."
|
||||
|
Loading…
x
Reference in New Issue
Block a user