set hyprland to autostart

This commit is contained in:
Gabriella Bere 2024-08-23 00:33:42 +01:00
parent 588800292c
commit edaa14d665
3 changed files with 196 additions and 1 deletions

167
home-manager/home.nix Normal file
View file

@ -0,0 +1,167 @@
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "blue";
home.homeDirectory = "/home/blue";
# 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 should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "24.05"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
# add grimblast screenshot tool
pkgs.grimblast
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/blue/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
# EDITOR = "emacs";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# Enable Hyprland compositor
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland;
xwayland.enable = true;
# Autostart using systemd
systemd.enable = true;
extraConfig = ''
exec-once = waybar
# Monitor settings
monitor = eDP-2, 2560x1600@165, 0x0, auto # main laptop monitor
monitor = DP-3, 1920x1080@144, -1280x-1080, auto # left external monitor
monitor = DP-2, 1920x1080@144, 640x-1080, auto # right external monitor
debug:disable_logs = false
'';
};
# Hyprland configuration
wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER";
input = { kb_layout = "gb"; };
bind =
[
"$mod, F, exec, firefox"
", Print, exec, grimblast copy area"
"$mod, 1, exec, alacritty"
]
++ (
# workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
builtins.concatLists (builtins.genList (
x: let
ws = let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in [
"$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
]
)
10)
);
};
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [
"eDP-2"
"DP-2"
"DP-3"
];
modules-left = [ "wlr/workspaces" "wlr/mode" "wlr/taskbar" ];
modules-center = [ "wlr/window" "custom/hello-from-waybar" ];
modules-right = [ "mpd" "custom/mymodule#with-css-id" "temperature" ];
"custom/hello-from-waybar" = {
format = "hello {}";
max-length = 40;
interval = "once";
exec = pkgs.writeShellScript "hello-from-waybar" ''
echo "from within waybar"
'';
};
};
};
};
programs.alacritty = {
enable = true;
package = pkgs.alacritty;
settings = {
window.dimensions = {
lines = 3;
columns = 200;
};
# keyboard.bindings = [
# {
# key = "K";
# mods = "Control";
# chars = "\\u000c";
# }
# ];
};
};
}

29
home-manager/zsh.nix Normal file
View file

@ -0,0 +1,29 @@
{ config, lib, pkgs, ... }:
{
programs.zsh = {
enable = true;
autocd = true;
dotDir = ".config/zsh";
enableAutosuggestions = true;
enableCompletion = true;
# shellAliases = {
# sl = "exa";
# ls = "exa";
# l = "exa -l";
# la = "exa -la";
# ip = "ip --color=auto";
# };
plugins = with pkgs; [
{
name = "zsh-syntax-highlighting";
src = fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-syntax-highlighting";
rev = "0.6.0";
sha256 = "0zmq66dzasmr5pwribyh4kbkk23jxbpdw4rjxx0i7dx8jjp2lzl4";
};
file = "agkozak-zsh-prompt.plugin.zsh";
}
}