Compare commits

...

4 commits

Author SHA1 Message Date
f13db672b8 added hyperland 2023-10-22 19:31:59 -07:00
8ac7378eba added default window offsets 2023-10-22 19:31:59 -07:00
90eadd92b2 added conditional, hostname based packages 2023-10-22 19:31:59 -07:00
da1e134689 removed old setting 2023-10-22 14:55:14 -07:00
6 changed files with 202 additions and 150 deletions

View file

@ -32,6 +32,7 @@
inherit (nixpkgs) lib;
inherit inputs home-manager user kmonad;
# Home server
Alaska = lib.nixosSystem {
inherit system;
@ -60,7 +61,7 @@
};
users.${user} = {
imports = [
(import ./users/${user}.nix)
(import ./home.nix)
# Add nixvim to the homemanager
inputs.nixvim.homeManagerModules.nixvim
];
@ -97,7 +98,7 @@
};
users.${user} = {
imports = [
(import ./users/${user}.nix)
(import ./home.nix)
# Add nixvim to the homemanager
inputs.nixvim.homeManagerModules.nixvim
];
@ -133,7 +134,7 @@
};
users.${user} = {
imports = [
(import ./users/${user}.nix)
(import ./home.nix)
# Add nixvim to the homemanager
inputs.nixvim.homeManagerModules.nixvim
];

153
home.nix Normal file
View 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";
};
};
}

View file

@ -4,7 +4,6 @@
services.nextcloud = {
enable = true;
package = pkgs.nextcloud27;
enableBrokenCiphersForSSE = false;
enableImagemagick = true;
nginx.recommendedHttpHeaders = true;
https = true;

View file

@ -33,7 +33,14 @@
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;
# Optionally, you may need to select the appropriate driver version for your specific GPU.

37
modules/hyprland.nix Normal file
View 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"
];
};
};
}

View file

@ -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";
};
};
}