This commit is contained in:
Varris 2022-11-14 12:58:04 +01:00
parent d5158fca6d
commit d8ac71d04a
17 changed files with 139 additions and 41 deletions

56
flake.nix Normal file → Executable file
View File

@ -9,6 +9,11 @@
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs";
};
# Fish Plugins
bobthefish = {
url = "github:oh-my-fish/theme-bobthefish";
@ -62,13 +67,15 @@
url = "github:vinceliuice/grub2-themes";
inputs.nixpkgs.follows = "nixpkgs";
};
waybar = {
url = "github:alexays/waybar";
flake = false;
};
};
outputs = { self, nixpkgs, home-manager, ... }@inputs:
let
username = "manuel";
hostname = "terra";
system = "x86_64-linux";
pkgs = import nixpkgs {
@ -87,6 +94,11 @@
wlroots-git = prev.wlroots.overrideAttrs (old: {
version = "git";
src = inputs.wlroots-git;
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.cmake pkgs.hwdata ];
postPatch = ''
substituteInPlace backend/drm/meson.build \
--replace "/usr/share/hwdata/pnp.ids" "${pkgs.hwdata}/share/hwdata/pnp.ids"
'';
});
sway-unwrapped = (prev.sway-unwrapped.overrideAttrs (old: {
@ -94,13 +106,21 @@
buildInputs = old.buildInputs ++ [ prev.xorg.xcbutilwm prev.pcre2 ];
nativeBuildInputs = old.nativeBuildInputs ++ [ prev.cmake ];
src = inputs.sway-git;
})).override { wlroots = wlroots-git; };
})).override {
wlroots = wlroots-git;
};
waybar = prev.waybar.override { wlroots = wlroots-git; };
waybar = (prev.waybar.overrideAttrs (old: {
version = "git";
src = inputs.waybar;
})).override {
wlroots = wlroots-git;
};
# xwayland = prev.xwayland.overrideAttrs (old: {
# version = "22.2";
# src = inputs.xorg-git;
#xwayland = prev.xwayland.overrideAttrs (old: {
# version = "git";
#
# src = inputs.xorg-git;
# buildInputs = old.buildInputs ++ [
# prev.udev
# prev.xorg.libpciaccess
@ -113,6 +133,11 @@
pkgs.gamescope
pkgs.libkrb5
pkgs.keyutils
pkgs.mpg123
];
extraLibraries = pkgs: [
pkgs.mpg123
];
};
@ -124,25 +149,22 @@
mesa-git = (prev.mesa.overrideAttrs (old: {
version = "git";
src = inputs.mesa-git;
buildInputs = old.buildInputs ++ [ pkgs.glslang ];
buildInputs = old.buildInputs ++ [ pkgs.glslang pkgs.vulkan-loader ];
patches = [
./pkgs/mesa-git/opencl.patch
./pkgs/mesa-git/disk_cache-include-dri-driver-path-in-cache-key.patch
./pkgs/patches/mesa-git/opencl.patch
./pkgs/patches/mesa-git/disk_cache-include-dri-driver-path-in-cache-key.patch
];
mesonFlags = pkgs.lib.lists.remove
"-Dxvmc-libs-path=${placeholder "drivers"}/lib"
old.mesonFlags; # xvmc was removed upstream
})).override {
galliumDrivers = [ "radeonsi" "swrast" ];
galliumDrivers = [ "radeonsi" "swrast" "zink" ];
vulkanDrivers = [ "amd" ];
enableGalliumNine = false; # Replaced by DXVK
};
fzf = prev.fzf.overrideAttrs (old: { version = "0.33.0"; });
};
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt;
nixosConfigurations.${hostname} = nixpkgs.lib.nixosSystem {
nixosConfigurations.terra = nixpkgs.lib.nixosSystem {
inherit system;
inherit pkgs;
specialArgs = { inherit inputs; };
@ -157,7 +179,7 @@
{
home-manager = {
useUserPackages = true;
users.${username} = import ./user/home.nix;
users.manuel = import ./user/home.nix;
extraSpecialArgs = { inherit inputs pkgs; };
};
}

View File

39
system/configuration.nix Normal file → Executable file
View File

@ -84,6 +84,8 @@
# Enable sound.
sound.enable = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
@ -91,6 +93,8 @@
pulse.enable = true;
};
services.flatpak.enable = true;
services.locate = {
enable = true;
locate = pkgs.plocate;
@ -169,8 +173,10 @@
services.geoclue2 = {
enable = true;
appConfig."gammastep".isAllowed = true;
appConfig."gammastep".isSystem = false;
appConfig."gammastep" = {
isAllowed = true;
isSystem = false;
};
};
services.gnome.gnome-keyring.enable = true;
@ -179,11 +185,17 @@
enable = true;
wlr.enable = true;
extraPortals = [
#pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-gtk
];
};
services.openssh = { enable = true; };
programs.ssh = {
startAgent = true;
};
services.openssh = {
enable = true;
};
services.printing = {
enable = true;
@ -196,7 +208,7 @@
};
services.greetd = {
enable = true;
enable = false;
settings = {
default_session = {
vt = 1;
@ -206,11 +218,22 @@
};
};
services.transmission = {
enable = true;
user = "manuel";
openFirewall = true;
};
services.fwupd.enable = true;
nix.gc = {
persistent = true;
automatic = true;
nix = {
gc = {
persistent = true;
automatic = true;
dates = "weekly";
options = "--delete-older-than 14d";
};
settings.auto-optimise-store = true;
};
nix.extraOptions = ''

0
system/hardware-configuration.nix Normal file → Executable file
View File

0
user/configs/beets/beets.nix Normal file → Executable file
View File

0
user/configs/dircolors.nix Normal file → Executable file
View File

6
user/configs/firefox/firefox.nix Normal file → Executable file
View File

@ -1 +1,5 @@
{ config, pkgs, ... }: { programs.firefox = { enable = true; }; }
{ config, pkgs, ... }: {
programs.firefox = {
enable = true;
};
}

7
user/configs/fish/fish.nix Normal file → Executable file
View File

@ -16,7 +16,12 @@
interactiveShellInit = ''
${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source
set theme_color_scheme gruvbox
set -g theme_color_scheme gruvbox
set -g theme_nerd_fonts yes
set -g theme_display_git_default_branch yes
set -g theme_git_default_branches master main
'';
functions = {
#fish_prompt = ''

View File

@ -0,0 +1,9 @@
{ pkgs, lib, inputs, ... }:
{
imports = [
inputs.hyprland.homeManagerModules.default
];
wayland.windowManager.hyprland.enable = true;
}

0
user/configs/kakoune/kakoune.nix Normal file → Executable file
View File

0
user/configs/mpd/mpd.nix Normal file → Executable file
View File

0
user/configs/mpv/mpv.nix Normal file → Executable file
View File

0
user/configs/nnn/nnn.nix Normal file → Executable file
View File

20
user/configs/sway/sway.nix Normal file → Executable file
View File

@ -45,10 +45,12 @@ let
rofi-theme = inputs.rofi-theme + "/gruvbox-dark.rasi";
killprocess = pkgs.writeShellScriptBin "killprocess.sh" ''
ps -x -o pid=,comm= | column -t -o " " | rofi -dmenu -p "kill process" | awk '{print $1}' | uniq | xargs -r kill -9
ps -x -o pid=,comm= | column -t -o " " | ${pkgs.rofi-wayland}/bin/rofi -dmenu -p "kill process" | awk '{print $1}' | uniq | xargs -r kill -9
'';
in {
in
{
imports = [ ./waybar.nix ];
wayland.windowManager.sway = {
enable = true;
config = {
@ -57,7 +59,8 @@ in {
gaps = { inner = 20; };
keybindings =
let modifier = config.wayland.windowManager.sway.config.modifier;
in lib.mkOptionDefault {
in
lib.mkOptionDefault {
"XF86AudioRaiseVolume" =
"exec ${pkgs.pamixer}/bin/pamixer -i 10 --get-volume > ${wobsock}";
"XF86AudioLowerVolume" =
@ -75,7 +78,7 @@ in {
"${modifier}+Print" =
"exec ${pkgs.sway-contrib.grimshot}/bin/grimshot -c --notify copy active";
"${modifier}+d" = "exec ${pkgs.rofi-wayland}/bin/rofi -show drun";
"${modifier}+d" = "exec ${pkgs.rofi-wayland}/bin/rofi -show drun -show-icons";
"${modifier}+Shift+p" = "exec ${passmenu}/bin/passmenu.sh";
"${modifier}+Shift+o" = "exec ${killprocess}/bin/killprocess.sh";
@ -84,13 +87,22 @@ in {
"Ctrl+Space" = "exec ${pkgs.mako}/bin/makoctl dismiss";
"Ctrl+grave" = "exec ${pkgs.mako}/bin/makoctl restore";
# resize gaps
"${modifier}+Shift+F10" = "exec swaymsg gaps inner all set 20";
"${modifier}+Shift+F11" = "exec swaymsg gaps inner all plus 20";
"${modifier}+Shift+F12" = "exec swaymsg gaps inner all minus 20";
};
input = {
"type:keyboard" = {
xkb_layout = "us";
xkb_variant = "altgr-intl";
};
"type:pointer" = { accel_profile = "flat"; };
"type:touchpad" = {
events =
"disabled"; # disable DualSense touchpad. Let Steam Input handle it

13
user/configs/sway/waybar.nix Normal file → Executable file
View File

@ -18,7 +18,8 @@ let
sleep 1
done
'';
in {
in
{
programs.waybar = {
enable = true;
settings = [{
@ -44,7 +45,9 @@ in {
icon-size = 16;
};
"clock" = { format = "{:%a %d. %B %H:%M}"; };
"clock" = {
format = "{:%a %d. %B %H:%M}";
};
"pulseaudio" = {
scroll-step = 5;
@ -78,6 +81,12 @@ in {
@define-color background #282828;
@define-color box-bg #3C3836;
label:disabled,
button:disabled {
color: inherit;
background-image: none;
}
* {
font-family: JetBrainsMono Nerd Font;
font-size: 9pt;

30
user/home.nix Normal file → Executable file
View File

@ -17,8 +17,8 @@
home.homeDirectory = "/home/manuel";
home.packages = [
pkgs.appimage-run
pkgs.discord
pkgs.firefox
pkgs.blueman
pkgs.discord-canary
pkgs.gamescope
pkgs.lutris
pkgs.nerdfonts
@ -26,7 +26,6 @@
pkgs.noto-fonts-cjk-serif
pkgs.pass
pkgs.pavucontrol
pkgs.polymc
pkgs.protontricks
pkgs.steam
pkgs.steam-run
@ -34,26 +33,36 @@
pkgs.thunderbird
pkgs.twemoji-color-font
pkgs.wineWowPackages.stagingFull
#pkgs.xivlauncher
pkgs.xivlauncher
pkgs.xarchiver
pkgs.sshfs
pkgs.gnome.gvfs
pkgs.signal-desktop
];
home.sessionVariables = {
BROWSER = "librewolf";
EDITOR = "kak";
GTK_USE_PORTAL = "1";
WINEDLLOVERRIDES = "winemenubuilder.exe=d";
#WLR_RENDERER = "vulkan"; Causes hangs
};
fonts.fontconfig.enable = true;
programs.keychain = {
enable = true;
enableFishIntegration = true;
};
services.gpg-agent = { enable = true; };
services.udiskie.enable = true;
# services.kdeconnect = {
# enable = true;
# indicator = true;
# };
services.kdeconnect = {
enable = true;
indicator = true;
};
services.gammastep = {
enable = false;
@ -104,6 +113,11 @@
services.gnome-keyring.enable = true;
services.easyeffects = {
enable = true;
preset = "custom";
};
programs.aria2.enable = true;
xdg.userDirs = {