mirror of
https://github.com/Nickiel12/nicks-nix-config.git
synced 2024-11-24 05:35:29 -08:00
Compare commits
4 commits
24b5af3a28
...
f13db672b8
Author | SHA1 | Date | |
---|---|---|---|
f13db672b8 | |||
8ac7378eba | |||
90eadd92b2 | |||
da1e134689 |
6 changed files with 202 additions and 150 deletions
|
@ -32,6 +32,7 @@
|
||||||
inherit (nixpkgs) lib;
|
inherit (nixpkgs) lib;
|
||||||
inherit inputs home-manager user kmonad;
|
inherit inputs home-manager user kmonad;
|
||||||
|
|
||||||
|
|
||||||
# Home server
|
# Home server
|
||||||
Alaska = lib.nixosSystem {
|
Alaska = lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
@ -60,7 +61,7 @@
|
||||||
};
|
};
|
||||||
users.${user} = {
|
users.${user} = {
|
||||||
imports = [
|
imports = [
|
||||||
(import ./users/${user}.nix)
|
(import ./home.nix)
|
||||||
# Add nixvim to the homemanager
|
# Add nixvim to the homemanager
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
];
|
];
|
||||||
|
@ -97,7 +98,7 @@
|
||||||
};
|
};
|
||||||
users.${user} = {
|
users.${user} = {
|
||||||
imports = [
|
imports = [
|
||||||
(import ./users/${user}.nix)
|
(import ./home.nix)
|
||||||
# Add nixvim to the homemanager
|
# Add nixvim to the homemanager
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
];
|
];
|
||||||
|
@ -133,7 +134,7 @@
|
||||||
};
|
};
|
||||||
users.${user} = {
|
users.${user} = {
|
||||||
imports = [
|
imports = [
|
||||||
(import ./users/${user}.nix)
|
(import ./home.nix)
|
||||||
# Add nixvim to the homemanager
|
# Add nixvim to the homemanager
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
];
|
];
|
||||||
|
|
153
home.nix
Normal file
153
home.nix
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
|
||||||
|
{ inputs, config, osConfig, pkgs, pkgs-stable, user, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
moz_overlay = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz);
|
||||||
|
nixpkgs = import <nixpkgs> {
|
||||||
|
overlays = [ moz_overlay ];
|
||||||
|
};
|
||||||
|
ruststable = (nixpkgs.latest.rustChannels.stable.rust.override {
|
||||||
|
extensions = [ "rust-src" "rust-analysis" ];}
|
||||||
|
);
|
||||||
|
|
||||||
|
commandline_only_hosts = [
|
||||||
|
"Alaska"
|
||||||
|
];
|
||||||
|
|
||||||
|
awesome-wm-widgets = pkgs.fetchFromGitHub {
|
||||||
|
owner = "streetturtle";
|
||||||
|
repo = "awesome-wm-widgets";
|
||||||
|
rev = "ef70d16c43c2f566a4fe2955b8d6c08f6c185af8";
|
||||||
|
sha256 = "td9uE+b3DrE+JJ3NCmIkQAuxJLJCGd79J5LZLqBw9KI=";
|
||||||
|
};
|
||||||
|
|
||||||
|
install_packages = with pkgs; [
|
||||||
|
# (pkgs.callPackage ./modules/minecraft-bedrock/minecraft-bedrock-server.nix {}) # the possible minecraft-bedrock-server package for testing
|
||||||
|
# utilities
|
||||||
|
bat # cat with wings (better cat)
|
||||||
|
bottom # system monitor
|
||||||
|
du-dust # directory disk-space analyzer
|
||||||
|
ffmpeg-full # ffmpeg for video/audio rendering
|
||||||
|
pkgs-stable.fontpreview # utility to preview fonts
|
||||||
|
gitui # command line git tui
|
||||||
|
pkgs-stable.pandoc # utility for converting between document types
|
||||||
|
pkgs-stable.qmk # QMK utility for compiling qmk firmware
|
||||||
|
nextcloud-client # Nextcloud private syncing
|
||||||
|
hddtemp
|
||||||
|
|
||||||
|
pkgs-stable.texlive.combined.scheme-medium
|
||||||
|
|
||||||
|
# commandline utils
|
||||||
|
eza
|
||||||
|
fd
|
||||||
|
fortune
|
||||||
|
neofetch
|
||||||
|
pfetch
|
||||||
|
rmtrash
|
||||||
|
testdisk # file recovery https://itsfoss.com/recover-deleted-files-linux/
|
||||||
|
xdotool
|
||||||
|
pkgs-stable.vhs
|
||||||
|
|
||||||
|
pkgs-stable.nodejs # required for coc-nvim
|
||||||
|
|
||||||
|
] ++ pkgs.lib.optionals (! builtins.elem osConfig.networking.hostName commandline_only_hosts ) [
|
||||||
|
# Gui application
|
||||||
|
pkgs-stable.darktable # RAW processing
|
||||||
|
pkgs-stable.dbeaver # SQL management tool
|
||||||
|
firefox # Internet access
|
||||||
|
freerdp # RDP client
|
||||||
|
pkgs-stable.flameshot # screenshot utility
|
||||||
|
pkgs-stable.frei0r # kdenlive video plugins
|
||||||
|
pkgs-stable.godot_4
|
||||||
|
pkgs-stable.helvum # audio sink gui control
|
||||||
|
pkgs-stable.inkscape # Vector drawing
|
||||||
|
pkgs-stable.kicad # PCB design
|
||||||
|
krita # Raster drawing
|
||||||
|
pkgs-stable.libreoffice-fresh # Office editing
|
||||||
|
pkgs-stable.makemkv # blue-ray + dvd -> mkv
|
||||||
|
pkgs-stable.obsidian # Markdown and notes
|
||||||
|
qalculate-gtk # unit-friendly calculator
|
||||||
|
pkgs-stable.vscodium # when vim and emacs (somehow) isn't enough
|
||||||
|
pkgs-stable.dragon # simple audio player
|
||||||
|
obs-studio # for video recording and virtual camera
|
||||||
|
|
||||||
|
|
||||||
|
libsForQt5.kate # kate/kwrite
|
||||||
|
libsForQt5.ark # kde archive manager
|
||||||
|
libsForQt5.kio # extra file-type click support
|
||||||
|
libsForQt5.kio-extras # even more extra file-type click support
|
||||||
|
libsForQt5.soundkonverter # audio cd ripping
|
||||||
|
|
||||||
|
# Kdenlive and deps
|
||||||
|
pkgs-stable.libsForQt5.kdenlive
|
||||||
|
pkgs-stable.mediainfo
|
||||||
|
pkgs-stable.mlt
|
||||||
|
|
||||||
|
# Drawing tablet driver
|
||||||
|
opentabletdriver
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./modules/discord.nix
|
||||||
|
#./modules/emacs.nix
|
||||||
|
./modules/git.nix
|
||||||
|
./modules/neovim.nix
|
||||||
|
./modules/rofi.nix
|
||||||
|
./modules/tmux.nix
|
||||||
|
./modules/wezterm.nix
|
||||||
|
./modules/xdg.nix
|
||||||
|
./modules/hyprland.nix
|
||||||
|
./modules/yazi.nix
|
||||||
|
./modules/zsh.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Let Home Manager install and manage itself.
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
programs.direnv.enable = true;
|
||||||
|
programs.direnv.nix-direnv.enable = true;
|
||||||
|
|
||||||
|
home = {
|
||||||
|
file = {
|
||||||
|
".config/awesome" = {
|
||||||
|
source = ./rsrcs/awesome;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
".config/awesome/cpu-widget.lua".source = "${awesome-wm-widgets}/cpu-widget/cpu-widget.lua";
|
||||||
|
".config/awesome/ram-widget.lua".source = "${awesome-wm-widgets}/ram-widget/ram-widget.lua";
|
||||||
|
".config/awesome/batteryarc.lua".source = "${awesome-wm-widgets}/batteryarc-widget/batteryarc.lua";
|
||||||
|
".config/awesome/awesome-wm-widgets/spaceman.jpg".source = "${awesome-wm-widgets}/batteryarc-widget/spaceman.jpg";
|
||||||
|
".config/awesome/calendar.lua".source = "${awesome-wm-widgets}/calendar-widget/batteryarc.lua";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Home Manager needs a bit of information about you and the
|
||||||
|
# paths it should manage.
|
||||||
|
username = user;
|
||||||
|
homeDirectory = "/home/${user}";
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
CARGO_TARGET_DIR = "$HOME/.target/";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# This value determines the Home Manager release that your
|
||||||
|
# configuration is compatible with. This helps avoid breakage
|
||||||
|
# when a new Home Manager release introduces backwards
|
||||||
|
# incompatible changes.
|
||||||
|
#
|
||||||
|
# You can update Home Manager without changing this value. See
|
||||||
|
# the Home Manager release notes for a list of state version
|
||||||
|
# changes in each release.
|
||||||
|
stateVersion = "22.11";
|
||||||
|
|
||||||
|
packages = install_packages;
|
||||||
|
sessionVariables = {
|
||||||
|
NIX_SHELL_PRESERVE_PROMPT = 1;
|
||||||
|
EDITOR = "nvim";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -4,7 +4,6 @@
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud27;
|
package = pkgs.nextcloud27;
|
||||||
enableBrokenCiphersForSSE = false;
|
|
||||||
enableImagemagick = true;
|
enableImagemagick = true;
|
||||||
nginx.recommendedHttpHeaders = true;
|
nginx.recommendedHttpHeaders = true;
|
||||||
https = true;
|
https = true;
|
||||||
|
|
|
@ -33,7 +33,14 @@
|
||||||
systemd.services.sshd.wantedBy = [ "multi-user.target" ];
|
systemd.services.sshd.wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
services.xserver = {
|
||||||
|
videoDrivers = [ "nvidia" ];
|
||||||
|
# xrandr for screen information. <connection>: <resolution> <offset>, <next connection>
|
||||||
|
# Option "nvidiaXineramaInfoOrder" "DFP-0"
|
||||||
|
screenSection = ''
|
||||||
|
Option "metamodes" "DP-2: 2560x1440 +1920+0, DP-4: 1920x1080 +0+360"
|
||||||
|
'';
|
||||||
|
};
|
||||||
hardware.opengl.enable = true;
|
hardware.opengl.enable = true;
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
|
|
37
modules/hyprland.nix
Normal file
37
modules/hyprland.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{config, pkgs, ...}:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.hyprland;
|
||||||
|
# Whether to enable XWayland
|
||||||
|
xwayland.enable = true;
|
||||||
|
|
||||||
|
# Optional
|
||||||
|
# Whether to enable hyprland-session.target on hyprland startup
|
||||||
|
systemd.enable = true;
|
||||||
|
# Whether to enable patching wlroots for better Nvidia support
|
||||||
|
enableNvidiaPatches = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
decoration = {
|
||||||
|
shadow_offset = "0 5";
|
||||||
|
"col.shadow" = "rgba(00000099)";
|
||||||
|
};
|
||||||
|
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
# mouse movements
|
||||||
|
"$mod, mouse:272, movewindow"
|
||||||
|
"$mod, mouse:273, resizewindow"
|
||||||
|
"$mod ALT, mouse:272, resizewindow"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -1,145 +0,0 @@
|
||||||
{ inputs, config, pkgs, pkgs-stable, user, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
moz_overlay = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz);
|
|
||||||
nixpkgs = import <nixpkgs> {
|
|
||||||
overlays = [ moz_overlay ];
|
|
||||||
};
|
|
||||||
ruststable = (nixpkgs.latest.rustChannels.stable.rust.override {
|
|
||||||
extensions = [ "rust-src" "rust-analysis" ];}
|
|
||||||
);
|
|
||||||
|
|
||||||
awesome-wm-widgets = pkgs.fetchFromGitHub {
|
|
||||||
owner = "streetturtle";
|
|
||||||
repo = "awesome-wm-widgets";
|
|
||||||
rev = "ef70d16c43c2f566a4fe2955b8d6c08f6c185af8";
|
|
||||||
sha256 = "td9uE+b3DrE+JJ3NCmIkQAuxJLJCGd79J5LZLqBw9KI=";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
../modules/discord.nix
|
|
||||||
#../modules/emacs.nix
|
|
||||||
../modules/git.nix
|
|
||||||
../modules/neovim.nix
|
|
||||||
../modules/rofi.nix
|
|
||||||
../modules/tmux.nix
|
|
||||||
../modules/wezterm.nix
|
|
||||||
../modules/xdg.nix
|
|
||||||
../modules/yazi.nix
|
|
||||||
../modules/zsh.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
".config/awesome" = {
|
|
||||||
source = ../rsrcs/awesome;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
".config/awesome/cpu-widget.lua".source = "${awesome-wm-widgets}/cpu-widget/cpu-widget.lua";
|
|
||||||
".config/awesome/ram-widget.lua".source = "${awesome-wm-widgets}/ram-widget/ram-widget.lua";
|
|
||||||
".config/awesome/batteryarc.lua".source = "${awesome-wm-widgets}/batteryarc-widget/batteryarc.lua";
|
|
||||||
".config/awesome/awesome-wm-widgets/spaceman.jpg".source = "${awesome-wm-widgets}/batteryarc-widget/spaceman.jpg";
|
|
||||||
".config/awesome/calendar.lua".source = "${awesome-wm-widgets}/calendar-widget/batteryarc.lua";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
programs.direnv.enable = true;
|
|
||||||
programs.direnv.nix-direnv.enable = true;
|
|
||||||
|
|
||||||
home = {
|
|
||||||
# Home Manager needs a bit of information about you and the
|
|
||||||
# paths it should manage.
|
|
||||||
username = user;
|
|
||||||
homeDirectory = "/home/${user}";
|
|
||||||
|
|
||||||
sessionVariables = {
|
|
||||||
CARGO_TARGET_DIR = "$HOME/.target/";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your
|
|
||||||
# configuration is compatible with. This helps avoid breakage
|
|
||||||
# when a new Home Manager release introduces backwards
|
|
||||||
# incompatible changes.
|
|
||||||
#
|
|
||||||
# You can update Home Manager without changing this value. See
|
|
||||||
# the Home Manager release notes for a list of state version
|
|
||||||
# changes in each release.
|
|
||||||
stateVersion = "22.11";
|
|
||||||
|
|
||||||
packages = with pkgs; [
|
|
||||||
# (pkgs.callPackage ./../modules/minecraft-bedrock/minecraft-bedrock-server.nix {}) # the possible minecraft-bedrock-server package for testing
|
|
||||||
# utilities
|
|
||||||
bat # cat with wings (better cat)
|
|
||||||
bottom # system monitor
|
|
||||||
du-dust # directory disk-space analyzer
|
|
||||||
ffmpeg-full # ffmpeg for video/audio rendering
|
|
||||||
pkgs-stable.frei0r # kdenlive video plugins
|
|
||||||
pkgs-stable.flameshot # screenshot utility
|
|
||||||
pkgs-stable.fontpreview # utility to preview fonts
|
|
||||||
gitui # command line git tui
|
|
||||||
pkgs-stable.godot_4
|
|
||||||
pkgs-stable.helvum # audio sink gui control
|
|
||||||
pkgs-stable.pandoc # utility for converting between document types
|
|
||||||
pkgs-stable.qmk # QMK utility for compiling qmk firmware
|
|
||||||
nextcloud-client # Nextcloud private syncing
|
|
||||||
hddtemp
|
|
||||||
|
|
||||||
pkgs-stable.texlive.combined.scheme-medium
|
|
||||||
|
|
||||||
# commandline utils
|
|
||||||
eza
|
|
||||||
fd
|
|
||||||
fortune
|
|
||||||
neofetch
|
|
||||||
pfetch
|
|
||||||
rmtrash
|
|
||||||
testdisk # file recovery https://itsfoss.com/recover-deleted-files-linux/
|
|
||||||
xdotool
|
|
||||||
pkgs-stable.vhs
|
|
||||||
|
|
||||||
pkgs-stable.nodejs # required for coc-nvim
|
|
||||||
|
|
||||||
# Gui application
|
|
||||||
pkgs-stable.darktable # RAW processing
|
|
||||||
pkgs-stable.dbeaver # SQL management tool
|
|
||||||
firefox # Internet access
|
|
||||||
freerdp # RDP client
|
|
||||||
pkgs-stable.inkscape # Vector drawing
|
|
||||||
pkgs-stable.kicad # PCB design
|
|
||||||
krita # Raster drawing
|
|
||||||
pkgs-stable.libreoffice-fresh # Office editing
|
|
||||||
pkgs-stable.makemkv # blue-ray + dvd -> mkv
|
|
||||||
pkgs-stable.obsidian # Markdown and notes
|
|
||||||
qalculate-gtk # unit-friendly calculator
|
|
||||||
pkgs-stable.vscodium # when vim and emacs (somehow) isn't enough
|
|
||||||
pkgs-stable.dragon # simple audio player
|
|
||||||
obs-studio # for video recording and virtual camera
|
|
||||||
|
|
||||||
libsForQt5.kate # kate/kwrite
|
|
||||||
libsForQt5.ark # kde archive manager
|
|
||||||
libsForQt5.kio # extra file-type click support
|
|
||||||
libsForQt5.kio-extras # even more extra file-type click support
|
|
||||||
libsForQt5.soundkonverter # audio cd ripping
|
|
||||||
|
|
||||||
# Kdenlive and deps
|
|
||||||
pkgs-stable.libsForQt5.kdenlive
|
|
||||||
pkgs-stable.mediainfo
|
|
||||||
pkgs-stable.mlt
|
|
||||||
|
|
||||||
# Drawing tablet driver
|
|
||||||
opentabletdriver
|
|
||||||
];
|
|
||||||
|
|
||||||
sessionVariables = {
|
|
||||||
NIX_SHELL_PRESERVE_PROMPT = 1;
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in a new issue