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.
|
- `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/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/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
|
### Adding a new system
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ git_repos() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
homemanager() {
|
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() {
|
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 = [
|
config,
|
||||||
./packages/default.nix
|
pkgs,
|
||||||
./fonts.nix
|
lib,
|
||||||
./gnome-extensions.nix
|
isServer ? false,
|
||||||
./dconf.nix
|
...
|
||||||
./keyboard-shortcuts.nix
|
}:
|
||||||
./virtualization.nix
|
|
||||||
./packages.nix
|
{
|
||||||
];
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
allowUnfreePredicate = pkg: true;
|
allowUnfreePredicate = pkg: true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.username = "menno";
|
imports =
|
||||||
home.homeDirectory = "/home/menno";
|
[ ./packages/common/default.nix ]
|
||||||
home.stateVersion = "24.05";
|
++ (
|
||||||
|
if isServer then
|
||||||
|
[
|
||||||
|
./packages/server/default.nix
|
||||||
|
./server/default.nix
|
||||||
|
]
|
||||||
|
else
|
||||||
|
[
|
||||||
|
./packages/workstation/default.nix
|
||||||
|
./workstation/default.nix
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
# Default applications
|
home = {
|
||||||
xdg.mimeApps = {
|
username = "menno";
|
||||||
enable = true;
|
homeDirectory = "/home/menno";
|
||||||
defaultApplications = {
|
stateVersion = "24.05";
|
||||||
# Zen Browser
|
sessionVariables = {
|
||||||
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ];
|
PATH = "${config.home.homeDirectory}/go/bin:$PATH"; # Removed extra asterisks
|
||||||
"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.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
|
cmatrix
|
||||||
figlet
|
figlet
|
||||||
lolcat
|
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 = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pinnedPkgs.vscode;
|
package = pkgs-vscode.vscode;
|
||||||
mutableExtensionsDir = true;
|
mutableExtensionsDir = true;
|
||||||
extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
ms-azuretools.vscode-docker
|
ms-azuretools.vscode-docker
|
||||||
@ -42,17 +39,5 @@ in
|
|||||||
github.copilot
|
github.copilot
|
||||||
github.copilot-chat
|
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" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
qemu
|
||||||
|
OVMF
|
||||||
|
];
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
docker = {
|
docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
9
setup.sh
9
setup.sh
@ -8,8 +8,7 @@ if [ -f $HOME/.dotfiles-setup ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if nixos-version is available
|
install_nix() {
|
||||||
ensure_nixos() {
|
|
||||||
if [ -x "$(command -v nixos-version)" ]; then
|
if [ -x "$(command -v nixos-version)" ]; then
|
||||||
tput setaf 2
|
tput setaf 2
|
||||||
echo "Detected NixOS, skipping Nix setup."
|
echo "Detected NixOS, skipping Nix setup."
|
||||||
@ -151,9 +150,9 @@ prepare_hostname() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
prepare_hostname
|
prepare_hostname
|
||||||
ensure_nixos
|
|
||||||
install_home_manager
|
|
||||||
setup_symlinks
|
setup_symlinks
|
||||||
|
install_nix
|
||||||
|
install_home_manager
|
||||||
|
|
||||||
# Rebuild NixOS
|
# Rebuild NixOS
|
||||||
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --flake .#$DOTF_HOSTNAME --impure
|
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --flake .#$DOTF_HOSTNAME --impure
|
||||||
@ -165,7 +164,7 @@ if [ $? -ne 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Rebuild Home Manager
|
# 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
|
if [ $? -ne 0 ]; then
|
||||||
tput setaf 1
|
tput setaf 1
|
||||||
echo "Failed to rebuild Home Manager. Exiting..."
|
echo "Failed to rebuild Home Manager. Exiting..."
|
||||||
|
Loading…
x
Reference in New Issue
Block a user