Compare commits

11 Commits

Author SHA1 Message Date
c085821bd4 Add h3y 2024-08-23 15:02:43 -07:00
3e45521719 Fix syncthingtray complaining on login 2024-08-23 09:09:34 -07:00
4640c8723b Add /etc/nixos as a safe git directory 2024-08-20 10:14:24 -07:00
03b6b26489 Add nix-book specific config 2024-08-20 10:14:13 -07:00
04a444ffd4 Rm home.nix symlink 2024-08-20 10:13:56 -07:00
474515dc4d Add killall 2024-08-20 09:59:55 -07:00
8bf130f641 Don't scale XWayland 2024-08-18 13:57:21 -07:00
a340ce7e43 Add nextcloud-talk-desktop package
Grabbed from this PR but modified so that it will actually work:
https://github.com/NixOS/nixpkgs/pull/302781
2024-08-18 13:49:11 -07:00
b449a56b0b Create device-specific hyprland config 2024-08-18 13:46:37 -07:00
d71b7e6976 Update doom-config 2024-08-16 12:31:51 -07:00
3ca4b62193 Switch to flakes 2024-08-16 12:25:00 -07:00
11 changed files with 529 additions and 16 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
result result
home.nix

327
flake.lock generated Normal file
View File

@@ -0,0 +1,327 @@
{
"nodes": {
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1724273991,
"narHash": "sha256-+aUSOXKGpS5CRm1oTitgNAr05ThQNbKIXalZHl3nC6Y=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "9a3161ad4c78dc420d1cbb3aae638222608c7de4",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1723399884,
"narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "086f619dd991a4d355c07837448244029fc2d9ab",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"hy3": {
"inputs": {
"hyprland": [
"hyprland"
]
},
"locked": {
"lastModified": 1723267004,
"narHash": "sha256-gyhpW3Mv9RgWsB8jAMoA7yoMSb01ol0jyPFNsghaZ0w=",
"owner": "outfoxxed",
"repo": "hy3",
"rev": "6af5f6004180664d883bd428f1da117bb6b1b6dc",
"type": "github"
},
"original": {
"owner": "outfoxxed",
"ref": "hl0.42.0",
"repo": "hy3",
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1722623071,
"narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "912d56025f03d41b1ad29510c423757b4379eb1c",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1723058230,
"narHash": "sha256-deu8zvgseDg2gQEnZiCda4TrbA6pleE9iItoZlsoMtE=",
"rev": "9a09eac79b85c846e3a865a9078a3f8ff65a9259",
"revCount": 5069,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
},
"original": {
"rev": "9a09eac79b85c846e3a865a9078a3f8ff65a9259",
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"xdph",
"nixpkgs"
],
"systems": [
"hyprland",
"xdph",
"systems"
]
},
"locked": {
"lastModified": 1721326555,
"narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1724174162,
"narHash": "sha256-fOOBLwil6M9QWMCiSULwjMQzrXhHXUnEqmjHX5ZHeVI=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "16e5c9465f04477d8a3dd48a0a26bf437986336c",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1722869141,
"narHash": "sha256-0KU4qhyMp441qfwbirNg3+wbm489KnEjXOz2I/RbeFs=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "0252fd13e78e60fb0da512a212e56007515a49f7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1721324119,
"narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1724224976,
"narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c374d94f1536013ca8e92341b540eba4c22f9c62",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1723637854,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"hy3": "hy3",
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_2"
}
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1724073926,
"narHash": "sha256-nWlUL43jOFHf+KW6Hqrx+W/r1XdXuDyb0wC/SrHsOu4=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "a08ecbbf33598924e93542f737fc6169a26b481e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

46
flake.nix Normal file
View File

@@ -0,0 +1,46 @@
{
description = "Home Manager configuration of johno";
inputs =
{
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
rev = "9a09eac79b85c846e3a865a9078a3f8ff65a9259";
};
hy3 = {
url = "github:outfoxxed/hy3?ref=hl0.42.0";
inputs.hyprland.follows = "hyprland";
};
};
outputs = { nixpkgs, home-manager, hyprland, hy3, ... }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
homeConfigurations."johno" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
# Specify your home configuration modules here, for example,
# the path to your home.nix.
modules = [
hyprland.homeManagerModules.default
./home.nix
];
# Optionally use extraSpecialArgs
# to pass through arguments to home.nix
extraSpecialArgs = { inherit hy3; inherit hyprland; };
};
};
}

View File

@@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
with import <nixpkgs> {}; with import <nixpkgs> {};
let
nextcloudTalkDesktop = pkgs.callPackage ./modules/applications/nextcloud-talk-desktop/package.nix {};
in
{ {
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
@@ -45,6 +48,7 @@ with import <nixpkgs> {};
pkgs.htop pkgs.htop
pkgs.jellyfin-media-player pkgs.jellyfin-media-player
pkgs.keepassxc pkgs.keepassxc
pkgs.killall
pkgs.kitty pkgs.kitty
pkgs.less pkgs.less
pkgs.ncdu pkgs.ncdu
@@ -56,6 +60,8 @@ with import <nixpkgs> {};
pkgs.waybar pkgs.waybar
pkgs.wofi pkgs.wofi
pkgs.vlc pkgs.vlc
nextcloudTalkDesktop
]; ];
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
@@ -125,6 +131,9 @@ with import <nixpkgs> {};
enable = true; enable = true;
userName = "John Ogle"; userName = "John Ogle";
userEmail = "john@ogle.fyi"; userEmail = "john@ogle.fyi";
extraConfig = {
safe.directory = "/etc/nixos";
};
}; };
programs.gpg.enable = true; programs.gpg.enable = true;
@@ -191,8 +200,7 @@ with import <nixpkgs> {};
enable = true; enable = true;
tray = { tray = {
enable = true; enable = true;
package = pkgs.qsyncthingtray; command = "syncthingtray --wait";
command = "qsyncthingtray --wait";
}; };
}; };

8
home-nix-book.nix Normal file
View File

@@ -0,0 +1,8 @@
{ config, lib, pkgs, ... }:
{
imports = [
./home-default.nix
./modules/window_managers/hyprland/nix-book.nix
];
}

8
home-z790prors.nix Normal file
View File

@@ -0,0 +1,8 @@
{ config, lib, pkgs, ... }:
{
imports = [
./home-default.nix
./modules/window_managers/hyprland/z790prors.nix
];
}

View File

@@ -0,0 +1,79 @@
{ lib
, stdenv
, fetchzip
, autoPatchelfHook
, nss
, cairo
, xorg
, libxkbcommon
, alsa-lib
, at-spi2-core
, mesa
, pango
, libdrm
, vivaldi-ffmpeg-codecs
, gtk3
, libGL
, libglvnd
, systemd
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nextcloud-talk-desktop";
version = "0.29.0";
# Building from source would require building also building Server and Talk components
# See https://github.com/nextcloud/talk-desktop?tab=readme-ov-file#%EF%B8%8F-prerequisites
src = fetchzip {
url = "https://github.com/nextcloud-releases/talk-desktop/releases/download/v${finalAttrs.version}/Nextcloud.Talk-linux-x64-${finalAttrs.version}.zip";
hash = "sha256-fBIeNv8tfrVTFExLQDBPhIazvbsJ7a76+W9G0cuQDlw=";
stripRoot = false;
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
nss
cairo
alsa-lib
at-spi2-core
pango
libdrm
libxkbcommon
gtk3
vivaldi-ffmpeg-codecs
mesa
libGL
libglvnd
] ++ (with xorg; [libX11 libXcomposite libXdamage libXrandr libXfixes libXcursor]);
# Required to launch the application and proceed past the zygote_linux fork() process
# Fixes `Zygote could not fork`
runtimeDependencies = [ systemd ];
preInstall = ''
mkdir -p $out/bin
mkdir -p $out/opt
cp -r $src/* $out/opt/
'';
installPhase = ''
runHook preInstall
# Link the application in $out/bin away from contents of `preInstall`
ln -s "$out/opt/Nextcloud Talk-linux-x64/Nextcloud Talk" $out/bin/${finalAttrs.pname}
runHook postInstall
'';
meta = with lib; {
description = "Nextcloud Talk Desktop Client Preview";
homepage = "https://github.com/nextcloud/talk-desktop";
changelog = "https://github.com/nextcloud/talk-desktop/blob/${finalAttrs.version}/CHANGELOG.md";
license = licenses.agpl3Only;
maintainers = with maintainers; [ kashw2 ];
mainProgram = finalAttrs.pname;
};
})

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: { hyprland, hy3, ... }:
{ {
imports = [ imports = [
@@ -8,9 +8,9 @@
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
package = hyprland.packages.x86_64-linux.hyprland;
plugins = [ hy3.packages.x86_64-linux.hy3 ];
settings = { settings = {
monitor = ",preferred,auto,1.5";
"$mod" = "SUPER"; "$mod" = "SUPER";
"$terminal" = "kitty"; "$terminal" = "kitty";
"$fileManager" = "dolphin"; "$fileManager" = "dolphin";
@@ -26,6 +26,10 @@
"HYPRCURSOR_SIZE,24" "HYPRCURSOR_SIZE,24"
]; ];
xwayland = {
force_zero_scaling = true;
};
input = { input = {
kb_layout = "us"; kb_layout = "us";
kb_options = "caps:escape"; kb_options = "caps:escape";
@@ -38,21 +42,37 @@
"suppressevent maximize, class:.*" "suppressevent maximize, class:.*"
]; ];
general.layout = "hy3";
bind = bind =
[ [
"SHIFT_$mod, Q, killactive" "SHIFT_$mod, Q, killactive"
"SHIFT_$mod, E, exit" "SHIFT_$mod, M, exit"
"$mod, D, exec, $menu" "$mod, D, exec, $menu"
"$mod, Return, exec, $terminal" "$mod, Return, exec, $terminal"
"$mod, H, movefocus, l"
"$mod, L, movefocus, r" "$mod, H, hy3:movefocus, l"
"$mod, K, movefocus, u" "$mod, L, hy3:movefocus, r"
"$mod, J, movefocus, d" "$mod, K, hy3:movefocus, u"
"SHIFT_$mod, H, swapwindow, l" "$mod, J, hy3:movefocus, d"
"SHIFT_$mod, L, swapwindow, r"
"SHIFT_$mod, K, swapwindow, u" "SHIFT_$mod, H, hy3:movewindow, l"
"SHIFT_$mod, J, swapwindow, d" "SHIFT_$mod, L, hy3:movewindow, r"
"SHIFT_$mod, K, hy3:movewindow, u"
"SHIFT_$mod, J, hy3:movewindow, d"
"$mod, V, hy3:makegroup, opposite"
"$mod, W, hy3:changegroup, toggletab"
"$mod, A, hy3:changefocus, raise"
"SHIFT_$mod, A, hy3:changefocus, lower"
"$mod, M, fullscreen, 0" "$mod, M, fullscreen, 0"
"$mod, E, hy3:expand, expand"
"SHIFT_$mod, E, hy3:expand, base"
"$mod, Q, hy3:warpcursor"
] ]
++ ( ++ (
# workspaces # workspaces
@@ -65,11 +85,17 @@
builtins.toString (x + 1 - (c * 10)); builtins.toString (x + 1 - (c * 10));
in [ in [
"$mod, ${ws}, workspace, ${toString (x + 1)}" "$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}" "$mod SHIFT, ${ws}, hy3:movetoworkspace, ${toString (x + 1)}"
] ]
) )
10) 10)
); );
bindm =
[
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
}; };
}; };
} }

View File

@@ -0,0 +1,5 @@
{ config, lib, pkgs, ... }:
{
wayland.windowManager.hyprland.settings.monitor = ",preferred,2880x1800@90.00Hz,1.33333";
}

View File

@@ -0,0 +1,5 @@
{ config, lib, pkgs, ... }:
{
wayland.windowManager.hyprland.settings.monitor = ",preferred,3440x1440@164.90Hz,1.33333";
}