diff --git a/flake.nix b/flake.nix
index 36850d0..a8b15a2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -29,6 +29,24 @@
];
};
secrets = import ./secrets/passwords-and-certificates.nix;
+ rice = {
+ transparency = "0.8";
+ colors = {
+ main-fg = "#ffffff";
+ main-bg = "#000000";
+ bubble-fg = "#ffffff";
+ bubble-bg = "#222222";
+ bubble-border = "#bbbbbb";
+ secondary-fg = "#ffffff";
+ secondary-bg = "#222255";
+ lines = "#bbbbbb";
+ accent = "#ff00ff"
+ };
+ font = {
+ code = "CascadiaCove-NF";
+ base = "Atkinson Hyperlegible";
+ };
+ };
in
{
nixosConfigurations = {
@@ -37,7 +55,7 @@
modules = [
./configuration.nix
];
- specialArgs = {inherit user allowed secrets;};
+ specialArgs = {inherit user allowed secrets rice;};
};
};
@@ -45,7 +63,7 @@
nx2 = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home.nix ];
- extraSpecialArgs = {inherit system user allowed secrets pkgs-unstable;};
+ extraSpecialArgs = {inherit system user allowed secrets pkgs-unstable rice;};
};
};
diff --git a/home-modules/git.nix b/home-modules/git.nix
index 5ba3ed4..bbb5d63 100644
--- a/home-modules/git.nix
+++ b/home-modules/git.nix
@@ -1,9 +1,31 @@
{ config, pkgs, lib, system, user, allowed, secrets, ... }:
{
+ home.packages = with pkgs; [
+ git
+ delta
+
+ # only works on spec arch, chage url for others
+ (stdenv.mkDerivation {
+ name = "easycommit";
+ src = pkgs.fetchurl {
+ url = "https://github.com/blackironj/easycommit/releases/download/v0.0.1/easycommit-v0.0.1-linux-amd64.tar.gz";
+ sha256 = "sha256-Ip5wfVe/RzCxGGh1YFBllAn84nD7mUXbnMko+ue/C2E=";
+ };
+ phases = ["installPhase"];
+ installPhase = ''
+ mkdir -p $out/bin
+ tar xf $src -C $out/
+ ls -la $out
+ mv $out/easycommit $out/bin/
+ chmod +x $out/bin/easycommit
+ '';
+ })
+ ];
+
programs.git = {
enable = true;
- userName = "nx2";
+ userName = ''Lennart J. Kurzweg (Nx2)'';
userEmail = "nx2@nx2.site";
delta = {
enable = true;
diff --git a/home-modules/hyprland/hyprland.nix b/home-modules/hyprland/hyprland.nix
index f487865..2592b4b 100644
--- a/home-modules/hyprland/hyprland.nix
+++ b/home-modules/hyprland/hyprland.nix
@@ -1,6 +1,6 @@
-{ config, pkgs, lib, ... }:
+{ config, pkgs, pkgs-unstable, rice, lib, ... }:
let
- animation-speed = "4";
+ animation-speed = "2";
transparency = "0.9";
gap-size = 10;
monitors = {
@@ -17,12 +17,16 @@ let
scale = "1.0";
};
};
-in
+in
{
- home.packages = with pkgs; [
+ home.packages = [
# hyprland itself is a system package
- hyprland-protocols
- (writeShellScriptBin "waybar_mode" ''
+ pkgs.hyprland-protocols
+
+ pkgs-unstable.hyprlock
+ pkgs-unstable.hypridle
+
+ (pkgs.writeShellScriptBin "waybar_mode" ''
#!/bin/bash
# Function to print help message
@@ -59,7 +63,7 @@ in
exit 0
'')
];
-
+
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
@@ -69,38 +73,38 @@ in
settings = {
# source = /home/nx2/.config/hypr/hyprland-nosync.conf;
-monitor = [
- "${monitors.main.name}, ${monitors.main.resolution}, ${monitors.main.position}, ${monitors.main.scale}"
-];
+ monitor = [
+ "${monitors.main.name}, ${monitors.main.resolution}, ${monitors.main.position}, ${monitors.main.scale}"
+ ];
-workspace = [
- "${monitors.main.name}, 11"
- "${monitors.main.name}, 12"
- "${monitors.main.name}, 13"
- "${monitors.main.name}, 14"
- "${monitors.main.name}, 15"
- "${monitors.main.name}, 16"
- "${monitors.main.name}, 17"
- "${monitors.main.name}, 18"
- "${monitors.main.name}, 19"
- "${monitors.main.name}, 10,gapsin:0,gapsout:0"
- "${monitors.main.name}, 100"
- "${monitors.second.name}, 21,gapsin:0,gapsout:0"
- "${monitors.second.name}, 21"
- "${monitors.second.name}, 22"
- "${monitors.second.name}, 23"
- "${monitors.second.name}, 24"
- "${monitors.second.name}, 25"
- "${monitors.second.name}, 26"
- "${monitors.second.name}, 27"
- "${monitors.second.name}, 28"
- "${monitors.second.name}, 29"
- "${monitors.second.name}, 20"
-];
+ workspace = [
+ "${monitors.main.name}, 11"
+ "${monitors.main.name}, 12"
+ "${monitors.main.name}, 13"
+ "${monitors.main.name}, 14"
+ "${monitors.main.name}, 15"
+ "${monitors.main.name}, 16"
+ "${monitors.main.name}, 17"
+ "${monitors.main.name}, 18"
+ "${monitors.main.name}, 19"
+ "${monitors.main.name}, 10,gapsin:0,gapsout:0"
+ "${monitors.main.name}, 100"
+ "${monitors.second.name}, 21,gapsin:0,gapsout:0"
+ "${monitors.second.name}, 21"
+ "${monitors.second.name}, 22"
+ "${monitors.second.name}, 23"
+ "${monitors.second.name}, 24"
+ "${monitors.second.name}, 25"
+ "${monitors.second.name}, 26"
+ "${monitors.second.name}, 27"
+ "${monitors.second.name}, 28"
+ "${monitors.second.name}, 29"
+ "${monitors.second.name}, 20"
+ ];
-"device:logitech-wireless-mouse-mx-master-1" = {
- sensitivity = -0.2;
-};
+ "device:logitech-wireless-mouse-mx-master-1" = {
+ sensitivity = -0.2;
+ };
# env = XCURSOR_SIZE,18
@@ -110,94 +114,96 @@ workspace = [
# env = XMODIFIERS,@im=ibus
input = {
- sensitivity = 0.1;
- kb_layout = "de";
- follow_mouse = "2";
- touchpad = {
- natural_scroll = true;
- scroll_factor = "0.9";
- };
+ sensitivity = 0.1;
+ kb_layout = "de";
+ follow_mouse = "2";
+ touchpad = {
+ natural_scroll = true;
+ scroll_factor = "0.9";
+ };
};
-
- general = {
- gaps_in = builtins.div gap-size 2;
- gaps_out = gap-size;
- border_size = "1";
- "col.active_border" = "rgba(888888ff)";
- "col.inactive_border" = "rgba(000000ff)";
- layout = "dwindle";
- # layout = "master";
- resize_on_border = false;
+ general = {
+ gaps_in = builtins.div gap-size 2;
+ gaps_out = gap-size;
+ border_size = "1";
+ "col.active_border" = "rgba(888888ff)";
+ "col.inactive_border" = "rgba(000000ff)";
+
+ layout = "dwindle";
+ # layout = "master";
+ resize_on_border = false;
};
decoration = {
- rounding = "0";
+ rounding = "0";
- drop_shadow = false;
- shadow_range = "20";
- shadow_offset = "0 0";
- shadow_render_power = "4";
- "col.shadow" = "rgba(000000ff)";
- "col.shadow_inactive" = "rgba(00000000)";
+ drop_shadow = false;
+ shadow_range = "20";
+ shadow_offset = "0 0";
+ shadow_render_power = "4";
+ "col.shadow" = "rgba(000000ff)";
+ "col.shadow_inactive" = "rgba(00000000)";
- active_opacity = "1.0";
- inactive_opacity = "1.0";
- fullscreen_opacity = "1.0";
+ active_opacity = "1.0";
+ inactive_opacity = "1.0";
+ fullscreen_opacity = "1.0";
- dim_inactive = false;
- dim_strength = "0.3";
+ dim_inactive = false;
+ dim_strength = "0.3";
- blur = {
- enabled = true;
- size = "3";
- passes = "2";
- xray = false;
- ignore_opacity = true;
- };
+ blur = {
+ enabled = true;
+ size = "3";
+ passes = "2";
+ xray = false;
+ ignore_opacity = true;
+ };
};
animations = {
- enabled = true;
- bezier = "myBezier, 0.01, 0.9, 0.1, 1.0";
- animation = [
- "windows, 1, ${animation-speed}, myBezier, slide"
- "border, 1, ${animation-speed}, myBezier"
- "fade, 1, ${animation-speed}, myBezier"
- "workspaces, 1, ${animation-speed}, myBezier, slide"
- ];
+ enabled = true;
+ # bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o
+ # bezier = "myBezier, 0.83, 0, 0.17, 1"; # io
+ bezier = "myBezier, 0.33, 1, 0.68, 1";
+ animation = [
+ "windows, 1, ${animation-speed}, myBezier, slide"
+ "border, 1, ${animation-speed}, myBezier"
+ "fade, 1, ${animation-speed}, myBezier"
+ "workspaces, 1, ${animation-speed}, myBezier, slide"
+ ];
};
gestures = {
- workspace_swipe = true;
- workspace_swipe_fingers = "4";
- workspace_swipe_distance = "300";
- workspace_swipe_invert = true;
- workspace_swipe_min_speed_to_force = "30";
- workspace_swipe_cancel_ratio = "0.5";
- workspace_swipe_create_new = false;
- workspace_swipe_direction_lock = false;
- workspace_swipe_direction_lock_threshold = "10";
- workspace_swipe_forever = true;
- workspace_swipe_numbered = false;
- workspace_swipe_use_r = false;
+ workspace_swipe = true;
+ workspace_swipe_fingers = "4";
+ workspace_swipe_distance = "300";
+ workspace_swipe_invert = true;
+ workspace_swipe_min_speed_to_force = "30";
+ workspace_swipe_cancel_ratio = "0.5";
+ workspace_swipe_create_new = false;
+ workspace_swipe_direction_lock = false;
+ workspace_swipe_direction_lock_threshold = "10";
+ workspace_swipe_forever = true;
+ workspace_swipe_numbered = false;
+ workspace_swipe_use_r = false;
};
dwindle = {
- preserve_split = true; # you probably want this
- no_gaps_when_only = true;
+ preserve_split = true; # you probably want this
+ no_gaps_when_only = true;
};
master = {
- new_is_master = true;
+ new_is_master = true;
};
misc = {
- disable_hyprland_logo = true;
- animate_mouse_windowdragging = false;
- enable_swallow = true;
+ disable_hyprland_logo = true;
+ animate_mouse_windowdragging = false;
+ enable_swallow = true;
};
exec-once = [
@@ -216,29 +222,31 @@ workspace = [
];
windowrulev2 = [
- "opacity $trans,class:^(com.chatterino.chatterino)$"
- "opacity $trans,class:^(chatterino)$"
+ "opacity ${transparency},class:^(com.chatterino.chatterino)$"
+ "opacity ${transparency},class:^(chatterino)$"
"bordercolor rgba(ff00ffff) rgba(ff00ff66), pinned:1"
];
windowrule = [
- "opacity $trans, code-oss"
- "opacity $trans, VSCodium"
- "opacity $trans, Code"
- "opacity $trans, neovide"
- "opacity $trans, obsidian"
- "opacity $trans, zathura"
+ "opacity ${transparency}, firefox"
+ "opacity ${transparency}, code-oss"
+ "opacity ${transparency}, VSCodium"
+ "opacity ${transparency}, Code"
+ "opacity ${transparency}, neovide"
+ "opacity ${transparency}, obsidian"
+ "opacity ${transparency}, zathura"
"bordercolor rgba(ffffffff) rgba(000000b2), Alacritty"
"bordercolor rgba(ffffffff) rgba(000000b2), Kitty"
- "opacity $trans, discord"
- "opacity $trans, vesktop"
- "opacity $trans, Element"
- "opacity $trans, thunderbird"
- "opacity $trans, lutris"
- "opacity $trans, element"
- "opacity $trans, ^([sS]potify)$"
- "opacity $trans, virt-manager"
- "opacity $trans, thunar"
+ "opacity ${transparency}, discord"
+ "opacity ${transparency}, vesktop"
+ "opacity ${transparency}, Element"
+ "opacity ${transparency}, thunderbird"
+ "opacity ${transparency}, lutris"
+ "opacity ${transparency}, element"
+ "opacity ${transparency}, ^([sS]potify)$"
+ "opacity ${transparency}, virt-manager"
+ "opacity ${transparency}, thunar"
+ "opacity ${transparency}, title:^(wlogout)$"
"opaque, title:^(GNU Image Manipulation Program)$"
"dimaround, Rofi"
"float, title:^(Picture-in-Picture)$"
@@ -433,16 +441,16 @@ workspace = [
bindm = [
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
- ];
+ ];
};
- # .d8888. db db d8888b. 88b d88 d8b d88888b. .d8888.
- # 88' YP 88 88 88 '8D 88YbdP88 dP'Yb 88' '8b 88' YP
- # '8bo. 88 88 88oooY' 88 YP 88 d8. .8b 88. .8P '8bo.
- # 'Y8b. 88 88 88''Yb. 88 88 8888888 888888P' 'Y8b.
- # db 8D 88. .88 88 8D 88 88 88' '88 88 db 8D
- # '8888Y' 'Y8888P' Y8888P' YP YP 88 YP YP '8888Y'
+ # .d8888. db db d8888b. 88b d88 d8b d88888b. .d8888.
+ # 88' YP 88 88 88 '8D 88YbdP88 dP'Yb 88' '8b 88' YP
+ # '8bo. 88 88 88oooY' 88 YP 88 d8. .8b 88. .8P '8bo.
+ # 'Y8b. 88 88 88''Yb. 88 88 8888888 888888P' 'Y8b.
+ # db 8D 88. .88 88 8D 88 88 88' '88 88 db 8D
+ # '8888Y' 'Y8888P' Y8888P' YP YP 88 YP YP '8888Y'
extraConfig = ''
submap = browserSM
bind = , W, exec, waybar_mode unset
@@ -727,30 +735,104 @@ workspace = [
submap = reset
'';
};
+
+ home.file = {
+ ".config/hypr/hyprlock.conf".text = ''
+
+ background {
+ monitor = ${monitors.main.name}
+
+ # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
+ path = /home/nx2/Pictures/nix-wall.png
+ blur_size = 4
+ blur_passes = 3 # 0 disables blurring
+ noise = 0.0117
+ contrast = 1.3000 # Vibrant!!!
+ brightness = 0.8000
+ vibrancy = 0.2100
+ vibrancy_darkness = 0.0
+ }
+
+ input-field {
+ monitor =
+ size = 250, 50
+ outline_thickness = 1
+ dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.64 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ outer_color = rgba(aaaaaaff)
+ inner_color = rgba(000000ff)
+ font_color = rgba(ffffffff)
+ fade_on_empty = true
+ placeholder_text = Password... # Text rendered in the input box when it's empty.
+ hide_input = false
+ position = 0, 50
+ halign = center
+ valign = bottom
+ }
+
+ # Current time
+ label {
+ monitor =
+ text = cmd[update:1000] echo " $(date +"%H:%M:%S") "
+ color = $color0
+ font_size = 64
+ font_family = ${font.code} 10
+ position = 0, 16
+ halign = center
+ valign = center
+ }
+
+ # User label
+ label {
+ monitor =
+ text = Hey $USER
+ color = $color0
+ font_size = 20
+ font_family = ${font.code} 10
+ position = 0, 0
+ halign = center
+ valign = center
+ }
+
+
+ # Type to unlock
+ label {
+ monitor =
+ text = Type to unlock!
+ color = $color0
+ font_size = 16
+ font_family = ${font.code} 10
+ position = 0, 30
+ halign = center
+ valign = bottom
+ }
+ '';
+ };
}
- # plugin {
- # hycov {
- # overview_gappo = 60 # gaps width from screen edge
- # overview_gappi = 24 # gaps width from clients
- # enable_hotarea = 0 # enable mouse cursor hotarea
- # # hotarea_monitor = all # monitor name which hotarea is in, default is all
- # # hotarea_pos = 1 # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right)
- # # hotarea_size = 10 # hotarea size, 10x10
- # # swipe_fingers = 4 # finger number of gesture,move any directory
- # move_focus_distance = 100 # distance for movefocus,only can use 3 finger to move
- # enable_gesture = 0 # enable gesture
- # disable_workspace_change = 0 # disable workspace change when in overview mode
- # disable_spawn = 0 # disable bind exec when in overview mode
- # auto_exit = 1 # enable auto exit when no client in overview
- # auto_fullscreen = 0 # auto make active window maximize after exit overview
- # only_active_workspace = 0 # only overview the active workspace
- # only_active_monitor = 1 # only overview the active monitor
- # enable_alt_release_exit = 0 # alt swith mode arg,see readme for detail
- # alt_replace_key = Alt_L # alt swith mode arg,see readme for detail
- # alt_toggle_auto_next = 0 # auto focus next window when toggle overview in alt swith mode
- # click_in_cursor = 0 # when click to jump,the target windwo is find by cursor, not the current foucus window.
- # hight_of_titlebar = 0 # height deviation of title bar hight
- # }
- # }
+# plugin {
+# hycov {
+# overview_gappo = 60 # gaps width from screen edge
+# overview_gappi = 24 # gaps width from clients
+# enable_hotarea = 0 # enable mouse cursor hotarea
+# # hotarea_monitor = all # monitor name which hotarea is in, default is all
+# # hotarea_pos = 1 # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right)
+# # hotarea_size = 10 # hotarea size, 10x10
+# # swipe_fingers = 4 # finger number of gesture,move any directory
+# move_focus_distance = 100 # distance for movefocus,only can use 3 finger to move
+# enable_gesture = 0 # enable gesture
+# disable_workspace_change = 0 # disable workspace change when in overview mode
+# disable_spawn = 0 # disable bind exec when in overview mode
+# auto_exit = 1 # enable auto exit when no client in overview
+# auto_fullscreen = 0 # auto make active window maximize after exit overview
+# only_active_workspace = 0 # only overview the active workspace
+# only_active_monitor = 1 # only overview the active monitor
+# enable_alt_release_exit = 0 # alt swith mode arg,see readme for detail
+# alt_replace_key = Alt_L # alt swith mode arg,see readme for detail
+# alt_toggle_auto_next = 0 # auto focus next window when toggle overview in alt swith mode
+# click_in_cursor = 0 # when click to jump,the target windwo is find by cursor, not the current foucus window.
+# hight_of_titlebar = 0 # height deviation of title bar hight
+# }
+# }
diff --git a/home.nix b/home.nix
index 6507915..dbb3c6e 100644
--- a/home.nix
+++ b/home.nix
@@ -51,7 +51,7 @@
imv mpv mediainfo exiftool ffmpeg
pavucontrol fontpreview gtk2fontsel
- lynx bat du-dust eza neofetch tldr fzf figlet delta ripgrep lolcat jq glow
+ lynx bat du-dust eza neofetch tldr fzf figlet ripgrep lolcat jq glow
brightnessctl wev
element sssnake pipes
@@ -64,43 +64,14 @@
python-pkgs.pipdeptree
python-pkgs.requests
]))
- (writeShellScriptBin "nxrbs-nix" ''
- set -e
- pushd ~/.nix-dots/
- git diff
- '')
- # only works on spec arch, chage url for others
- (stdenv.mkDerivation {
- name = "easycommit";
- src = pkgs.fetchurl {
- url = "https://github.com/blackironj/easycommit/releases/download/v0.0.1/easycommit-v0.0.1-linux-amd64.tar.gz";
- sha256 = "sha256-Ip5wfVe/RzCxGGh1YFBllAn84nD7mUXbnMko+ue/C2E=";
- };
- phases = ["installPhase"];
- installPhase = ''
- mkdir -p $out/bin
- tar xf $src -C $out/
- ls -la $out
- mv $out/easycommit $out/bin/
- chmod +x $out/bin/easycommit
- '';
- })
+ # (writeShellScriptBin "nxrbs-nix" ''
+ # set -e
+ # pushd ~/.nix-dots/
+ # git diff
+ # '')
+
];
- home.file = {
- };
- # Home Manager can also manage your environment variables through
- # 'home.sessionVariables'. 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
- #
- # /etc/profiles/per-user/nx2/etc/profile.d/hm-session-vars.sh
- #
-
xdg = {
enable = true;
configHome = /home/${user}/.config;