Compare commits

...

17 Commits

Author SHA1 Message Date
34f27abebf Remove extra newline 2024-08-23 17:00:48 -07:00
950c362428 Add gamescope and mangohud 2024-08-23 16:51:45 -07:00
36de237993 Pin hyprland and hy3 to match the system 2024-08-23 15:27:58 -07:00
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
478d665c34 Merge branch 'hyprland' 2024-08-16 09:57:45 -07:00
bddff2d815 Fix emacs scoping 2024-08-02 16:59:48 -07:00
e5866f201d Install configured emacs package 2024-07-30 15:42:21 -07:00
12 changed files with 605 additions and 17 deletions

1
.gitignore vendored
View File

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

404
flake.lock generated Normal file
View File

@@ -0,0 +1,404 @@
{
"nodes": {
"aquamarine": {
"inputs": {
"hyprutils": [
"system-flake",
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"system-flake",
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"system-flake",
"hyprland",
"nixpkgs"
],
"systems": [
"system-flake",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1722347739,
"narHash": "sha256-rAoh+K6KG+b1DwSWtqRVocdojnH6nGk6q07mNltoUSM=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "7c3565f9bedc7cb601cc0baa14792247e4dc1d5a",
"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"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"system-flake",
"nixpkgs"
]
},
"locked": {
"lastModified": 1723986931,
"narHash": "sha256-Fy+KEvDQ+Hc8lJAV3t6leXhZJ2ncU5/esxkgt3b8DEY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2598861031b78aadb4da7269df7ca9ddfc3e1671",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"hy3": {
"inputs": {
"hyprland": [
"system-flake",
"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": [
"system-flake",
"hyprland",
"hyprlang"
],
"nixpkgs": [
"system-flake",
"hyprland",
"nixpkgs"
],
"systems": [
"system-flake",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1721330371,
"narHash": "sha256-aYlHTWylczLt6ERJyg6E66Y/XSCbVL7leVcRuJmVbpI=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "4493a972b48f9c3014befbbf381ed5fff91a65dc",
"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_2",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1723058230,
"narHash": "sha256-deu8zvgseDg2gQEnZiCda4TrbA6pleE9iItoZlsoMtE=",
"ref": "refs/heads/main",
"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": [
"system-flake",
"hyprland",
"xdph",
"nixpkgs"
],
"systems": [
"system-flake",
"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": [
"system-flake",
"hyprland",
"hyprutils"
],
"nixpkgs": [
"system-flake",
"hyprland",
"nixpkgs"
],
"systems": [
"system-flake",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1721324361,
"narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"system-flake",
"hyprland",
"nixpkgs"
],
"systems": [
"system-flake",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1722098849,
"narHash": "sha256-D3wIZlBNh7LuZ0NaoCpY/Pvu+xHxIVtSN+KkWZYvvVs=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "5dcbbc1e3de40b2cecfd2007434d86e924468f1f",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"system-flake",
"hyprland",
"nixpkgs"
],
"systems": [
"system-flake",
"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": 1723637854,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1722185531,
"narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"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",
"nixpkgs": "nixpkgs",
"system-flake": "system-flake"
}
},
"system-flake": {
"inputs": {
"home-manager": "home-manager_2",
"hy3": "hy3",
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"dirtyRev": "c11d973b4b80e9093469c2d631413400af2d0122-dirty",
"dirtyShortRev": "c11d973-dirty",
"lastModified": 1724450819,
"narHash": "sha256-m9w2HgDUvtXegSjuIPE3whTYOPnyEZuAdIRZLMtGQBc=",
"type": "git",
"url": "file:///etc/nixos"
},
"original": {
"type": "git",
"url": "file:///etc/nixos"
}
},
"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": [
"system-flake",
"hyprland",
"hyprlang"
],
"nixpkgs": [
"system-flake",
"hyprland",
"nixpkgs"
],
"systems": [
"system-flake",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1722365976,
"narHash": "sha256-Khdm+mDzYA//XaU0M+hftod+rKr5q9SSHSEuiQ0/9ow=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "7f2a77ddf60390248e2a3de2261d7102a13e5341",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

43
flake.nix Normal file
View File

@@ -0,0 +1,43 @@
{
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";
};
system-flake = {
type = "git";
url = "file:///etc/nixos";
};
};
outputs = { nixpkgs, home-manager, ... } @inputs :
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 = [
inputs.system-flake.inputs.hyprland.homeManagerModules.default
./home.nix
];
# Optionally use extraSpecialArgs
# to pass through arguments to home.nix
extraSpecialArgs = {
hy3 = inputs.system-flake.inputs.hy3;
hyprland = inputs.system-flake.inputs.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

@@ -2,6 +2,8 @@
{ {
home.packages = [ home.packages = [
pkgs.gamescope
pkgs.lutris pkgs.lutris
pkgs.mangohud
]; ];
} }

View File

@@ -1,16 +1,15 @@
{ config, lib, pkgs, ... }: { hyprland, hy3, ... }:
{ {
imports = [ imports = [
./hyprpaper.nix ./hyprpaper.nix
]; ];
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 +25,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 +41,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 +84,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";
}