restructured flake
This commit is contained in:
parent
5c7ae091c1
commit
bf3bb961f3
100 changed files with 76 additions and 78 deletions
20
modules/home-manager/default.nix
Normal file
20
modules/home-manager/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
|
||||
home.enable = true;
|
||||
|
||||
imports = [
|
||||
./desktop
|
||||
./shell
|
||||
./tmux
|
||||
./utils
|
||||
|
||||
./git.nix
|
||||
./syncthing.nix
|
||||
];
|
||||
|
||||
home-manager.users.willifan = {
|
||||
home.stateVersion = "23.11";
|
||||
};
|
||||
|
||||
}
|
9
modules/home-manager/desktop/compositors/default.nix
Normal file
9
modules/home-manager/desktop/compositors/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
imports = [
|
||||
./niri.nix
|
||||
./river.nix
|
||||
./waybar.nix
|
||||
];
|
||||
}
|
95
modules/home-manager/desktop/compositors/niri.nix
Normal file
95
modules/home-manager/desktop/compositors/niri.nix
Normal file
|
@ -0,0 +1,95 @@
|
|||
{ inputs, lib, config, pkgs, ... }:
|
||||
let
|
||||
SCRIPTS = "$XDG_CONFIG_HOME/desktop-utils/scripts";
|
||||
autobrightness = fetchTarball {
|
||||
url = "https://git.huwe.mooo.com/willifan/Mac-like-automatic-brightness/archive/0.1.0.tar.gz";
|
||||
sha256 = "1andyln5vmm934nl1lsid2gpc88h9il83b84yd9dmqr7pninwk37";
|
||||
};
|
||||
in
|
||||
lib.mkIf (config.desktop.wm.niri.enable && config.nixos.enable) {
|
||||
|
||||
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
||||
|
||||
programs.niri.enable = true;
|
||||
|
||||
programs.light.enable = true;
|
||||
|
||||
home-manager.users.willifan = {
|
||||
|
||||
home.packages = [
|
||||
pkgs.xwayland-satellite
|
||||
pkgs.bc
|
||||
];
|
||||
|
||||
programs.niri.settings = {
|
||||
outputs."eDP-1" = {
|
||||
scale = 1.6;
|
||||
variable-refresh-rate = true;
|
||||
};
|
||||
|
||||
spawn-at-startup = [
|
||||
{
|
||||
command = [ "xwayland-satellite" ":0" ];
|
||||
}
|
||||
{
|
||||
command = [ "sh" "${autobrightness}/AutomaticBrightness.sh" ];
|
||||
}
|
||||
];
|
||||
|
||||
hotkey-overlay.skip-at-startup = true;
|
||||
prefer-no-csd = true;
|
||||
|
||||
environment = {
|
||||
DISPLAY = ":0";
|
||||
};
|
||||
|
||||
input = {
|
||||
keyboard.xkb = {
|
||||
layout = "eu";
|
||||
};
|
||||
};
|
||||
|
||||
window-rules = [
|
||||
{
|
||||
geometry-corner-radius = {
|
||||
top-right = 12.0;
|
||||
top-left = 12.0;
|
||||
bottom-right = 12.0;
|
||||
bottom-left = 12.0;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
|
||||
|
||||
open-maximized = true;
|
||||
}
|
||||
];
|
||||
|
||||
binds = {
|
||||
|
||||
"Mod+H".action.focus-column-or-monitor-left = { };
|
||||
"Mod+J".action.focus-window-or-monitor-down = { };
|
||||
"Mod+K".action.focus-window-or-monitor-up = { };
|
||||
"Mod+L".action.focus-column-or-monitor-right = { };
|
||||
|
||||
"Mod+Q".action.spawn = [ "kitty" ];
|
||||
"Mod+C".action.close-window = { };
|
||||
"Mod+M".action.quit = { };
|
||||
"Mod+E".action.spawn = [ "thunar" ];
|
||||
"Mod+R".action.spawn = [ "fuzzel" ];
|
||||
"Mod+P".action.spawn = [ "Enpass" ];
|
||||
"Mod+F".action.fullscreen-window = { };
|
||||
|
||||
"XF86AudioMute".action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" ];
|
||||
"XF86AudioLowerVolume".action.spawn = [ "sh" "-c" "${SCRIPTS}/volume.sh -5" ];
|
||||
"XF86AudioRaiseVolume".action.spawn = [ "sh" "-c" "${SCRIPTS}/volume.sh 5" ];
|
||||
"XF86AudioPrev".action.spawn = [ "playerctl" "previous" ];
|
||||
"XF86AudioPlay".action.spawn = [ "playerctl" "play-pause" ];
|
||||
"XF86AudioNext".action.spawn = [ "playerctl" "next" ];
|
||||
"XF86MonBrightnessDown".action.spawn = [ "sh" "${autobrightness}/AutomaticBrightness.sh" "-d" "10" ];
|
||||
"XF86MonBrightnessUp".action.spawn = [ "sh" "${autobrightness}/AutomaticBrightness.sh" "-i" "10" ];
|
||||
"Print".action.screenshot = { };
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
19
modules/home-manager/desktop/compositors/river.nix
Normal file
19
modules/home-manager/desktop/compositors/river.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ lib, config, ... }:
|
||||
lib.mkIf config.desktop.wm.river.enable {
|
||||
home-manager.users.willifan = {
|
||||
wayland.windowManager.river = {
|
||||
enable = true;
|
||||
settings = {
|
||||
map = {
|
||||
normal = {
|
||||
"Super Q" = "spawn 'kitty'";
|
||||
"Super R" = "spawn 'fuzzel'";
|
||||
"Super E" = "spawn 'thunar'";
|
||||
|
||||
"Super C" = "close";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
153
modules/home-manager/desktop/compositors/waybar.nix
Normal file
153
modules/home-manager/desktop/compositors/waybar.nix
Normal file
|
@ -0,0 +1,153 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
let
|
||||
icons = fetchTarball {
|
||||
url = "https://files.huwe.mooo.com/waybar.tar.gz";
|
||||
sha256 = "0h5r8r7vscm6yv25kgyzx5y325n5ri78n28vmdvgmysp351drm57";
|
||||
};
|
||||
in
|
||||
lib.mkIf config.desktop.wm.niri.enable {
|
||||
home-manager.users.willifan = {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 25;
|
||||
output = [
|
||||
"eDP-1"
|
||||
];
|
||||
modules-left = [ "clock" "mpris" ];
|
||||
modules-center = [ "niri/workspaces" ];
|
||||
modules-right = [ "tray" "group/ressources" "group/peripherals" "group/wireless" "group/power" ];
|
||||
|
||||
"group/ressources" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "group/cpu" "group/memory" ];
|
||||
};
|
||||
"group/peripherals" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "group/volume" "group/backlight" ];
|
||||
};
|
||||
"group/wireless" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "group/networking" "group/bluetooth" ];
|
||||
};
|
||||
"group/power" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "group/battery" "image#power" ];
|
||||
};
|
||||
|
||||
|
||||
"clock" = {
|
||||
interval = 1;
|
||||
format = "{:%H:%M:%S}";
|
||||
};
|
||||
"mpris" = {
|
||||
format = "";
|
||||
format-playing = "{dynamic}";
|
||||
dynamic-order = [ "title" "artist" "album" "position" "length" ];
|
||||
dynamic-len = 30;
|
||||
};
|
||||
"niri/workspaces" = {
|
||||
all-outputs = true;
|
||||
};
|
||||
|
||||
"group/cpu" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "image#cpu" "cpu" ];
|
||||
};
|
||||
"image#cpu" = {
|
||||
path = "${icons}/cpu.png";
|
||||
size = 16;
|
||||
};
|
||||
"cpu" = {
|
||||
format = "{usage}%";
|
||||
};
|
||||
|
||||
"group/memory" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "image#memory" "memory" ];
|
||||
};
|
||||
"image#memory" = {
|
||||
path = "${icons}/ram.png";
|
||||
size = 16;
|
||||
};
|
||||
"memory" = {
|
||||
format = "{percentage}%";
|
||||
};
|
||||
|
||||
"group/volume" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "image#volume" "wireplumber" ];
|
||||
};
|
||||
"image#volume" = {
|
||||
path = "${icons}/volume.png";
|
||||
size = 16;
|
||||
};
|
||||
"wireplumber" = {
|
||||
format = "{volume}%";
|
||||
};
|
||||
|
||||
"group/backlight" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "image#backlight" "backlight" ];
|
||||
};
|
||||
"image#backlight" = {
|
||||
path = "${icons}/brightness.png";
|
||||
size = 16;
|
||||
};
|
||||
"backlight" = {
|
||||
format = "{percent}%";
|
||||
};
|
||||
|
||||
"group/networking" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "image#networking" "network" ];
|
||||
};
|
||||
"image#networking" = {
|
||||
path = "${icons}/wifiHigh.png";
|
||||
size = 16;
|
||||
};
|
||||
"network" = {
|
||||
format = "{signalStrength}%";
|
||||
};
|
||||
|
||||
"group/bluetooth" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "image#bluetooth" "bluetooth" ];
|
||||
};
|
||||
"image#bluetooth" = {
|
||||
path = "${icons}/bluetooth.png";
|
||||
size = 16;
|
||||
};
|
||||
"bluetooth" = {
|
||||
format = "{status}";
|
||||
};
|
||||
|
||||
"group/battery" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "image#battery" "battery" ];
|
||||
};
|
||||
"image#battery" = {
|
||||
path = "${icons}/battery.png";
|
||||
size = 16;
|
||||
};
|
||||
"battery" = {
|
||||
format = "{capacity}%";
|
||||
};
|
||||
|
||||
"image#power" = {
|
||||
path = "${icons}/power.png";
|
||||
size = 16;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
14
modules/home-manager/desktop/default.nix
Normal file
14
modules/home-manager/desktop/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
imports = [
|
||||
./hyprland
|
||||
./compositors
|
||||
|
||||
./options.nix
|
||||
./kitty.nix
|
||||
./vscodium.nix
|
||||
./zed.nix
|
||||
];
|
||||
|
||||
}
|
21
modules/home-manager/desktop/hyprland/default.nix
Normal file
21
modules/home-manager/desktop/hyprland/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
|
||||
|
||||
#home-manager.users.willifan = {
|
||||
imports = [
|
||||
./fuzzel.nix
|
||||
./hyprexit.nix
|
||||
./hypridle.nix
|
||||
./hyprlock.nix
|
||||
./hyprpaper.nix
|
||||
./mako.nix
|
||||
./utils.nix
|
||||
./wlogout.nix
|
||||
./options.nix
|
||||
./hyprland.nix
|
||||
];
|
||||
#};
|
||||
|
||||
}
|
15
modules/home-manager/desktop/hyprland/fuzzel.nix
Normal file
15
modules/home-manager/desktop/hyprland/fuzzel.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
programs.fuzzel = lib.mkIf config.desktop.fuzzel.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
lines = 12;
|
||||
width = 45;
|
||||
line-height = 20;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
11
modules/home-manager/desktop/hyprland/hyprexit.nix
Normal file
11
modules/home-manager/desktop/hyprland/hyprexit.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
home.packages = lib.mkIf config.desktop.hyprexit.enable [
|
||||
(pkgs.writeShellScriptBin "hyprexit" ''
|
||||
${pkgs.hyprland}/bin/hyprctl dispatch exit
|
||||
${pkgs.systemd}/bin/loginctl terminate-user willifan
|
||||
'')
|
||||
];
|
||||
};
|
||||
}
|
40
modules/home-manager/desktop/hyprland/hypridle.nix
Normal file
40
modules/home-manager/desktop/hyprland/hypridle.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
services.hypridle = lib.mkIf config.desktop.hypridle.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = "loginctl lock-session && sleep 2"; # lock before suspend.
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
|
||||
};
|
||||
|
||||
listener = [
|
||||
#{
|
||||
# timeout = 150; # 2.5min.
|
||||
# on-timeout = brightnessctl -s set 10; # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
# on-resume = brightnessctl -r; # monitor backlight restor.
|
||||
#}
|
||||
|
||||
{
|
||||
timeout = 300; # 5min
|
||||
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
{
|
||||
timeout = 380; # 5.5min
|
||||
on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed
|
||||
on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
{
|
||||
timeout = 600; # 30min
|
||||
on-timeout = "systemctl suspend-then-hibernate"; # suspend pc
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
264
modules/home-manager/desktop/hyprland/hyprland.nix
Normal file
264
modules/home-manager/desktop/hyprland/hyprland.nix
Normal file
|
@ -0,0 +1,264 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
lib.mkIf config.desktop.hyprland.enable {
|
||||
home-manager.users.willifan = {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.variables = [ "--all" ];
|
||||
package = pkgs.hyprland;
|
||||
settings = {
|
||||
|
||||
|
||||
"$SCRIPTS" = "$XDG_CONFIG_HOME/desktop-utils/scripts";
|
||||
|
||||
misc = {
|
||||
disable_hyprland_logo = true;
|
||||
};
|
||||
|
||||
monitor = [
|
||||
", preffered, auto, 1"
|
||||
] ++ lib.optionals config.desktop.hyprland.hardware.Lenni.enable [
|
||||
"eDP-1, preferred, 0x0, 1.6"
|
||||
] ++ lib.optionals config.desktop.hyprland.hardware.Puenktchen.enable [
|
||||
"desc:ViewSonic Corporation VX2705-2KP W6Z205100250, 2560x1440@144Hz, 0x384, 1.25"
|
||||
"desc:ViewSonic Corporation VX2705-2KP W6Z210400766, 2560x1440@144Hz, 2048x384, 1.25"
|
||||
"desc:BNQ BenQ BL2283 CAM01567019, 1920x1080@60Hz, 4096x0, 1.0, transform, 3"
|
||||
];
|
||||
# Execute your favorite apps at launch
|
||||
exec-once = [
|
||||
''hyprctl dispatch exec "[workspace 1 silent] zen"''
|
||||
''hyprctl dispatch exec "[workspace 2 silent] kitty"''
|
||||
#''hyprctl dispatch exec "[workspace 3 silent] "''
|
||||
#''hyprctl dispatch exec "[workspace 4 silent] "''
|
||||
#''hyprctl dispatch exec "[workspace 8 silent] "''
|
||||
''hyprctl dispatch exec "[workspace 9 silent] vesktop"''
|
||||
''hyprctl dispatch exec "[workspace special:ctrl silent] thunar"''
|
||||
''hyprctl dispatch exec "[workspace special:alt silent] obsidian"''
|
||||
#''hyprctl dispatch exec "[workspace special:altgr silent]"''
|
||||
#''hyprctl dispatch exec "[workspace special:strg silent] "''
|
||||
''${lib.getExe pkgs.ewwbar}''
|
||||
];
|
||||
|
||||
xwayland.force_zero_scaling = true;
|
||||
|
||||
input = {
|
||||
kb_layout = "eu";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "";
|
||||
kb_rules = "";
|
||||
|
||||
|
||||
follow_mouse = 1;
|
||||
|
||||
touchdevice.transform = lib.mkIf config.desktop.hyprland.hardware.Lillie.enable 3;
|
||||
|
||||
touchpad.natural_scroll = "yes";
|
||||
|
||||
sensitivity = -0.8; # -1.0 - 1.0, 0 means no modification.
|
||||
numlock_by_default = 1;
|
||||
special_fallthrough = true;
|
||||
};
|
||||
|
||||
|
||||
|
||||
general = {
|
||||
|
||||
gaps_in = 2;
|
||||
gaps_out = 5;
|
||||
border_size = 2;
|
||||
# "col.active_border" = "rgba(ffa44bee)";
|
||||
# "col.inactive_border" = "rgba(595959aa)";
|
||||
|
||||
layout = "dwindle";
|
||||
|
||||
resize_on_border = true;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
|
||||
rounding = 10;
|
||||
|
||||
blur = {
|
||||
enabled = false;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
new_optimizations = 1;
|
||||
};
|
||||
|
||||
shadow.enabled = true;
|
||||
shadow.range = 4;
|
||||
shadow.render_power = 3;
|
||||
# "col.shadow" = "rgba(1a1a1aee)";
|
||||
};
|
||||
|
||||
misc = {
|
||||
vfr = true;
|
||||
mouse_move_enables_dpms = true;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = "yes";
|
||||
|
||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||
|
||||
animation = [
|
||||
"windows, 1, 7, myBezier"
|
||||
"windowsOut, 1, 7, default, popin 80%"
|
||||
"border, 1, 10, default"
|
||||
"borderangle, 1, 8, default"
|
||||
"fade, 1, 7, default"
|
||||
"workspaces, 1, 6, default"
|
||||
"specialWorkspace, 1, 8, default, slidefadevert 20%"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = "yes"; # you probably want this
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = "on";
|
||||
workspace_swipe_create_new = "false";
|
||||
workspace_swipe_touch = lib.mkIf config.desktop.hyprland.hardware.Lillie.enable "true";
|
||||
};
|
||||
|
||||
device = lib.mkIf config.desktop.hyprland.hardware.Lenni.enable {
|
||||
name = "pixa3854:00-093a:0274-touchpad";
|
||||
sensitivity = 0;
|
||||
natural_scroll = "yes";
|
||||
};
|
||||
|
||||
windowrule = [
|
||||
"idleinhibit fullscreen, ^(firefox)$"
|
||||
"float, ^(thunar)$"
|
||||
"stayfocused, title:^(Enpass Assistant)$"
|
||||
"pin, title:^(Enpass Assistant)$"
|
||||
"center, title:^(Enpass Assistant)$"
|
||||
"float, ^(Enpass)$"
|
||||
"center, ^(Enpass)$"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"center, xwayland:(1)"
|
||||
"nofocus,class:^jetbrains-(?!toolbox),floating:1,title:^win\d+$"
|
||||
''workspace +0, workspace:name:special:ctrl, floating:0''
|
||||
''float, workspace:name:special:altgr, onworkspace:w[2]''
|
||||
''float, workspace:name:special:strg, onworkspace:w[1]''
|
||||
''workspace +0, workspace:name:special:strg, floating:0''
|
||||
];
|
||||
|
||||
"$mainMod" = "SUPER";
|
||||
|
||||
bind = [
|
||||
''$mainMod, Q, exec, kitty''
|
||||
''$mainMod, C, killactive, ''
|
||||
''$mainMod, M, exit, ''
|
||||
''$mainMod, E, exec, thunar''
|
||||
''$mainMod, V, togglefloating, ''
|
||||
''$mainMod, R, exec, fuzzel''
|
||||
''$mainMod, P, exec, Enpass''
|
||||
''$mainMod, F, fullscreen''
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
''$mainMod, h, movefocus, l''
|
||||
''$mainMod, l, movefocus, r''
|
||||
''$mainMod, k, movefocus, u''
|
||||
''$mainMod, j, movefocus, d''
|
||||
|
||||
'', XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle''
|
||||
'', XF86AudioPrev, exec, playerctl previous''
|
||||
'', XF86AudioPlay, exec, playerctl play-pause''
|
||||
'', XF86AudioNext, exec, playerctl next''
|
||||
'', print, exec, grim -g "$(slurp)" - | wl-copy -t image/png''
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
''$mainMod, 1, exec, $SCRIPTS/workspaces.sh 1''
|
||||
''$mainMod, 2, exec, $SCRIPTS/workspaces.sh 2''
|
||||
''$mainMod, 3, exec, $SCRIPTS/workspaces.sh 3''
|
||||
''$mainMod, 4, exec, $SCRIPTS/workspaces.sh 4''
|
||||
''$mainMod, 5, exec, $SCRIPTS/workspaces.sh 5''
|
||||
''$mainMod, 6, exec, $SCRIPTS/workspaces.sh 6''
|
||||
''$mainMod, 7, exec, $SCRIPTS/workspaces.sh 7''
|
||||
''$mainMod, 8, exec, $SCRIPTS/workspaces.sh 8''
|
||||
''$mainMod, 9, exec, $SCRIPTS/workspaces.sh 9''
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
''$mainMod SHIFT, 1, movetoworkspace, 1''
|
||||
''$mainMod SHIFT, 2, movetoworkspace, 2''
|
||||
''$mainMod SHIFT, 3, movetoworkspace, 3''
|
||||
''$mainMod SHIFT, 4, movetoworkspace, 4''
|
||||
''$mainMod SHIFT, 5, movetoworkspace, 5''
|
||||
''$mainMod SHIFT, 6, movetoworkspace, 6''
|
||||
''$mainMod SHIFT, 7, movetoworkspace, 7''
|
||||
''$mainMod SHIFT, 8, movetoworkspace, 8''
|
||||
''$mainMod SHIFT, 9, movetoworkspace, 9''
|
||||
|
||||
# Monitor focus
|
||||
''$mainMod ALT, 1, focusmonitor, 0''
|
||||
''$mainMod ALT, 2, focusmonitor, 1''
|
||||
''$mainMod ALT, 3, focusmonitor, 2''
|
||||
''$mainMod ALT, 4, focusmonitor, 3''
|
||||
''$mainMod ALT, 5, focusmonitor, 4''
|
||||
''$mainMod ALT, 6, focusmonitor, 5''
|
||||
''$mainMod ALT, 7, focusmonitor, 6''
|
||||
''$mainMod ALT, 8, focusmonitor, 7''
|
||||
''$mainMod ALT, 9, focusmonitor, 8''
|
||||
''$mainMod ALT, 0, focusmonitor, 9''
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
''$mainMod, mouse_down, workspace, e+1''
|
||||
''$mainMod, mouse_up, workspace, e-1''
|
||||
];
|
||||
|
||||
binde = [
|
||||
'', XF86AudioLowerVolume, exec, $SCRIPTS/volume.sh -5''
|
||||
'', XF86AudioRaiseVolume, exec, $SCRIPTS/volume.sh 5''
|
||||
];
|
||||
|
||||
bindel = [
|
||||
'', XF86MonBrightnessDown, exec, $SCRIPTS/brightness.sh -4800''
|
||||
'', XF86MonBrightnessUp, exec, $SCRIPTS/brightness.sh 4800''
|
||||
];
|
||||
|
||||
bindr = [
|
||||
''SUPERCTRL, Control_L, togglespecialworkspace, ctrl''
|
||||
''SUPERALT, Alt_L, togglespecialworkspace, alt''
|
||||
''SUPERALT, ALT_R, togglespecialworkspace, altgr''
|
||||
''SUPERCTRL, Control_R, togglespecialworkspace, strg''
|
||||
];
|
||||
|
||||
bindm = [
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
''$mainMod, mouse:272, movewindow''
|
||||
''$mainMod, mouse:273, resizewindow''
|
||||
];
|
||||
|
||||
# ------------------------------------------
|
||||
# ########################################
|
||||
# ####### Workspaces ###########
|
||||
# ########################################
|
||||
# ------------------------------------------
|
||||
|
||||
workspace = [
|
||||
"1, persistent:true"
|
||||
"2, persistent:true"
|
||||
"3, persistent:true"
|
||||
"4, persistent:true"
|
||||
"5, persistent:true"
|
||||
"6, persistent:true"
|
||||
"7, persistent:true"
|
||||
"8, persistent:true"
|
||||
"8, persistent:true"
|
||||
"9, persistent:true"
|
||||
|
||||
"name:special:ctrl, persistent:true"
|
||||
"name:special:alt, persistent:true"
|
||||
"name:special:altgr, persistent:true"
|
||||
"name:special:strg, persistent:true"
|
||||
];
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
56
modules/home-manager/desktop/hyprland/hyprlock.nix
Normal file
56
modules/home-manager/desktop/hyprland/hyprlock.nix
Normal file
|
@ -0,0 +1,56 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
programs.hyprlock = lib.mkIf config.desktop.hyprlock.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
background = {
|
||||
monitor = "";
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
blur_passes = 3; # 0 disables blurring
|
||||
blur_size = 7;
|
||||
noise = 0.0117;
|
||||
contrast = 0.8916;
|
||||
brightness = 0.8172;
|
||||
vibrancy = 0.1696;
|
||||
vibrancy_darkness = 0.0;
|
||||
};
|
||||
|
||||
input-field = {
|
||||
monitor = "";
|
||||
size = "300, 75";
|
||||
outline_thickness = 3;
|
||||
dots_size = 0.33; # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.15; # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = false;
|
||||
dots_rounding = -1; # -1 default circle, -2 follow input-field rounding
|
||||
fade_on_empty = true;
|
||||
fade_timeout = 1000; # Milliseconds before fade_on_empty is triggered.
|
||||
placeholder_text = "<i>Input Password...</i>"; # Text rendered in the input box when it's empty.
|
||||
hide_input = false;
|
||||
rounding = -1; # -1 means complete rounding (circle/oval)
|
||||
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>"; # can be set to empty
|
||||
fail_transition = 300; # transition time in ms between normal outer_color and fail_color
|
||||
capslock_color = -1;
|
||||
numlock_color = -1;
|
||||
bothlock_color = -1; # when both locks are active. -1 means don't change outer color (same for above)
|
||||
invert_numlock = false; # change color if numlock is off
|
||||
position = "0, -20";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
};
|
||||
|
||||
label = {
|
||||
monitor = "";
|
||||
text = "Hi there, $USER";
|
||||
color = "rgba(200, 200, 200, 1.0)";
|
||||
font_size = 25;
|
||||
font_family = "Noto Sans";
|
||||
position = "0, 80";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
15
modules/home-manager/desktop/hyprland/hyprpaper.nix
Normal file
15
modules/home-manager/desktop/hyprland/hyprpaper.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
services.hyprpaper = lib.mkIf config.desktop.hyprpaper.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
splash = true;
|
||||
|
||||
ipc = "off";
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
11
modules/home-manager/desktop/hyprland/mako.nix
Normal file
11
modules/home-manager/desktop/hyprland/mako.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
services.mako = lib.mkIf config.desktop.mako.enable {
|
||||
enable = true;
|
||||
borderRadius = 10;
|
||||
borderSize = 2;
|
||||
|
||||
};
|
||||
};
|
||||
}
|
61
modules/home-manager/desktop/hyprland/options.nix
Normal file
61
modules/home-manager/desktop/hyprland/options.nix
Normal file
|
@ -0,0 +1,61 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
fuzzel.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
hyprexit.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
hypridle.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
enable = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
hardware = {
|
||||
Lenni.enable = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
Puenktchen.enable = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
Lillie.enable = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hyprlock.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
hyprpaper.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
mako.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
utils.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
wlogout.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
19
modules/home-manager/desktop/hyprland/utils.nix
Normal file
19
modules/home-manager/desktop/hyprland/utils.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
home.packages = lib.mkIf config.desktop.utils.enable [
|
||||
|
||||
pkgs.hyprpicker
|
||||
pkgs.hyprcursor
|
||||
|
||||
pkgs.grim
|
||||
pkgs.slurp
|
||||
pkgs.wl-clipboard
|
||||
pkgs.playerctl
|
||||
|
||||
pkgs.dconf
|
||||
|
||||
pkgs.papirus-icon-theme
|
||||
];
|
||||
};
|
||||
}
|
83
modules/home-manager/desktop/hyprland/wlogout.nix
Normal file
83
modules/home-manager/desktop/hyprland/wlogout.nix
Normal file
|
@ -0,0 +1,83 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
programs.wlogout = lib.mkIf config.desktop.wlogout.enable {
|
||||
enable = true;
|
||||
layout = [
|
||||
{
|
||||
label = "shutdown";
|
||||
action = "systemctl poweroff";
|
||||
text = "Shutdown";
|
||||
}
|
||||
{
|
||||
label = "hyprland";
|
||||
action = "hyprctl dispatch exit";
|
||||
text = "Exit Hyprland";
|
||||
}
|
||||
{
|
||||
label = "whatever";
|
||||
action = "";
|
||||
text = "whatever";
|
||||
}
|
||||
{
|
||||
label = "reboot";
|
||||
action = "systemctl reboot";
|
||||
text = "Reboot";
|
||||
}
|
||||
{
|
||||
label = "suspend";
|
||||
action = "systemctl suspend";
|
||||
text = "Suspend";
|
||||
}
|
||||
{
|
||||
label = "hibernate";
|
||||
action = "systemctl hibernate";
|
||||
text = "Hibernate";
|
||||
}
|
||||
];
|
||||
|
||||
style = ''
|
||||
@import url("file:///home/willifan/.config/gtk-4.0/gtk.css");
|
||||
* {
|
||||
background-image: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: rgba(12, 12, 12, 0.9);
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 10px;
|
||||
border-color: #ffa44b;
|
||||
border-style: solid;
|
||||
border-width: 2px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 25%;
|
||||
}
|
||||
|
||||
button:focus, button:active, button:hover {
|
||||
/*background-color: #3700B3;*/
|
||||
outline-style: none;
|
||||
}
|
||||
|
||||
#suspend {
|
||||
background-image: image(url("/home/willifan/.config/desktop-utils/images/suspend.png"));
|
||||
}
|
||||
|
||||
#hibernate {
|
||||
background-image: image(url("/home/willifan/.config/desktop-utils/images/hibernate.png"));
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: image(url("/home/willifan/.config/desktop-utils/images/shutdown.png"));
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: image(url("/home/willifan/.config/desktop-utils/images/reboot.png"));
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
11
modules/home-manager/desktop/kitty.nix
Normal file
11
modules/home-manager/desktop/kitty.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
programs.kitty = lib.mkIf config.desktop.kitty.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
enable_audio_bell = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
26
modules/home-manager/desktop/options.nix
Normal file
26
modules/home-manager/desktop/options.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
kitty.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
vscodium.enable = lib.mkOption {
|
||||
default = config.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
wm = {
|
||||
niri.enable = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
river.enable = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
66
modules/home-manager/desktop/vscodium.nix
Normal file
66
modules/home-manager/desktop/vscodium.nix
Normal file
|
@ -0,0 +1,66 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
programs.vscode = lib.mkIf config.desktop.vscodium.enable {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
|
||||
profiles.default = {
|
||||
userSettings = {
|
||||
"[nix]"."editor.tabSize" = 2;
|
||||
"explorer.confirmDragAndDrop" = false;
|
||||
"cmake.showOptionsMovedNotification" = false;
|
||||
"extensions.autoUpdate" = false;
|
||||
"rust-analyzer.check.command" = "clippy";
|
||||
"editor.formatOnSave" = true;
|
||||
};
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
# System
|
||||
arrterian.nix-env-selector
|
||||
bbenoist.nix
|
||||
#fireblast.hyprlang-vscode
|
||||
#eww-yuck.yuck
|
||||
|
||||
#Rust
|
||||
rust-lang.rust-analyzer
|
||||
serayuzgur.crates
|
||||
bungcip.better-toml
|
||||
#vadimcn.vscode-lldb
|
||||
usernamehw.errorlens
|
||||
|
||||
#C/C++
|
||||
ms-vscode.cpptools
|
||||
twxs.cmake
|
||||
ms-vscode.cmake-tools
|
||||
|
||||
#Shell
|
||||
timonwong.shellcheck
|
||||
mads-hartmann.bash-ide-vscode
|
||||
|
||||
#Git
|
||||
#phil294.git-log--graph
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
{
|
||||
name = "hyprlang-vscode";
|
||||
publisher = "fireblast";
|
||||
version = "0.0.1";
|
||||
sha256 = "lSMihMIue0qu9+97EgT5dqjbzsey0TLZDpJby+Piip4=";
|
||||
}
|
||||
{
|
||||
name = "yuck";
|
||||
publisher = "eww-yuck";
|
||||
version = "0.0.3";
|
||||
sha256 = "DITgLedaO0Ifrttu+ZXkiaVA7Ua5RXc4jXQHPYLqrcM=";
|
||||
}
|
||||
{
|
||||
name = "git-log--graph";
|
||||
publisher = "phil294";
|
||||
version = "0.1.15";
|
||||
sha256 = "lvjDkvXSX7rw7HyyK3WWQLnGezvL6FPEgtjIi8KWkU0=";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
12
modules/home-manager/desktop/zed.nix
Normal file
12
modules/home-manager/desktop/zed.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
lib.mkIf config.desktop.enable {
|
||||
home-manager.users.willifan.programs.zed-editor = {
|
||||
enable = true;
|
||||
extensions = [ "nix" "toml" ];
|
||||
userSettings = {
|
||||
load_direnv = "direct";
|
||||
};
|
||||
};
|
||||
|
||||
fonts.packages = [ pkgs.nerd-fonts.jetbrains-mono ];
|
||||
}
|
14
modules/home-manager/git.nix
Normal file
14
modules/home-manager/git.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = pkgs.gitAndTools.gitFull;
|
||||
userName = "willifan";
|
||||
userEmail = "willifan@pm.me";
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
20
modules/home-manager/shell/bash.nix
Normal file
20
modules/home-manager/shell/bash.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
programs = {
|
||||
bash = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
ls = "eza";
|
||||
};
|
||||
};
|
||||
|
||||
starship = {
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
# programs.bash.blesh.enable = true;
|
||||
|
||||
}
|
16
modules/home-manager/shell/default.nix
Normal file
16
modules/home-manager/shell/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
home-manager.users.willifan = {
|
||||
imports = [
|
||||
./bash.nix
|
||||
./eza.nix
|
||||
./hyfetch.nix
|
||||
./nushell.nix
|
||||
./ssh.nix
|
||||
./starship.nix
|
||||
./zoxide.nix
|
||||
];
|
||||
};
|
||||
|
||||
}
|
8
modules/home-manager/shell/eza.nix
Normal file
8
modules/home-manager/shell/eza.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
}
|
53
modules/home-manager/shell/hyfetch.nix
Normal file
53
modules/home-manager/shell/hyfetch.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.hyfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
preset = "transgender";
|
||||
mode = "rgb";
|
||||
light_dark = "dark";
|
||||
lightness = 0.69;
|
||||
color_align = {
|
||||
mode = "horizontal";
|
||||
custom_colors = [ ];
|
||||
fore_back = null;
|
||||
};
|
||||
backend = "fastfetch";
|
||||
args = null;
|
||||
distro = null;
|
||||
pride_month_shown = [ ];
|
||||
pride_month_disable = false;
|
||||
};
|
||||
};
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
modules = [
|
||||
"title"
|
||||
"separator"
|
||||
"os"
|
||||
"host"
|
||||
{
|
||||
type = "localip";
|
||||
showIpv6 = false;
|
||||
showMac = false;
|
||||
showSpeed = false;
|
||||
showMtu = false;
|
||||
showLoop = false;
|
||||
showFlags = false;
|
||||
}
|
||||
"kernel"
|
||||
"uptime"
|
||||
"packages"
|
||||
"shell"
|
||||
"wm"
|
||||
"cpu"
|
||||
"gpu"
|
||||
"memory"
|
||||
"break"
|
||||
"colors"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
13
modules/home-manager/shell/nushell.nix
Normal file
13
modules/home-manager/shell/nushell.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
programs = {
|
||||
nushell = {
|
||||
enable = true;
|
||||
};
|
||||
starship = {
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
2
modules/home-manager/shell/ssh.nix
Normal file
2
modules/home-manager/shell/ssh.nix
Normal file
|
@ -0,0 +1,2 @@
|
|||
{ ... }:
|
||||
{ }
|
159
modules/home-manager/shell/starship.nix
Normal file
159
modules/home-manager/shell/starship.nix
Normal file
|
@ -0,0 +1,159 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
format = lib.concatStrings [
|
||||
"[ ](fg:twelve bg:trans_blue)"
|
||||
"[ ](bg:trans_blue)[ ](fg:trans_blue bg:trans_pink)"
|
||||
"$hostname"
|
||||
"[ ](bg:trans_pink)[ ](fg:trans_pink bg:trans_white)"
|
||||
"$directory"
|
||||
"[ ](bg:trans_white)[ ](fg:trans_white bg:trans_pink)"
|
||||
"("
|
||||
"$git_branch"
|
||||
"$git_status"
|
||||
")"
|
||||
"[ ](bg:trans_pink)[ ](fg:trans_pink bg:trans_blue)"
|
||||
"$character"
|
||||
];
|
||||
|
||||
right_format = lib.concatStrings [
|
||||
"$cmd_duration"
|
||||
"("
|
||||
"$python"
|
||||
"$conda"
|
||||
"$c"
|
||||
"$cmake"
|
||||
"$golang"
|
||||
"$haskell"
|
||||
"$rust"
|
||||
")"
|
||||
];
|
||||
|
||||
palette = "stylix";
|
||||
|
||||
# Disables the blank line at the start of the prompt
|
||||
add_newline = true;
|
||||
|
||||
|
||||
palettes.stylix = {
|
||||
first = config.lib.stylix.colors.withHashtag.base00;
|
||||
second = config.lib.stylix.colors.withHashtag.base01;
|
||||
third = config.lib.stylix.colors.withHashtag.base02;
|
||||
fourth = config.lib.stylix.colors.withHashtag.base03;
|
||||
fifth = config.lib.stylix.colors.withHashtag.base04;
|
||||
sixth = config.lib.stylix.colors.withHashtag.base05;
|
||||
seventh = config.lib.stylix.colors.withHashtag.base06;
|
||||
eighth = config.lib.stylix.colors.withHashtag.base07;
|
||||
baseeight = config.lib.stylix.colors.withHashtag.base08;
|
||||
basenine = config.lib.stylix.colors.withHashtag.base09;
|
||||
ten = config.lib.stylix.colors.withHashtag.base0A;
|
||||
eleven = config.lib.stylix.colors.withHashtag.base0B;
|
||||
twelve = config.lib.stylix.colors.withHashtag.base0C;
|
||||
thirteen = config.lib.stylix.colors.withHashtag.base0D;
|
||||
fourteen = config.lib.stylix.colors.withHashtag.base0E;
|
||||
fifteen = config.lib.stylix.colors.withHashtag.base0F;
|
||||
trans_blue = "#55CDFD";
|
||||
trans_pink = "#F6AAB7";
|
||||
trans_white = "#FFFFFF";
|
||||
pride_red = "#FF1E26";
|
||||
pride_orange = "#FE941E";
|
||||
pride_yellow = "#FFFF00";
|
||||
pride_green = "#06BD00";
|
||||
pride_blue = "#001A98";
|
||||
pride_violet = "#760088";
|
||||
# Text color:
|
||||
black = "#272D37";
|
||||
white = "#CBF4F8";
|
||||
github = "#B02B10";
|
||||
};
|
||||
|
||||
hostname = {
|
||||
ssh_only = false;
|
||||
style = "bg:trans_pink fg:twelve";
|
||||
format = "[$hostname](bold $style)";
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "bg:trans_white fg:twelve";
|
||||
format = "[ $path](bold $style)($style)[$read_only](bold $style)";
|
||||
truncation_symbol = "…/";
|
||||
truncate_to_repo = true;
|
||||
read_only = " ";
|
||||
};
|
||||
|
||||
c = {
|
||||
symbol = " ";
|
||||
version_format = "\${raw}";
|
||||
style = "bg:fourth fg:white";
|
||||
format = "[$symbol($version) ]($style)";
|
||||
};
|
||||
|
||||
cmake = {
|
||||
symbol = "△ ";
|
||||
version_format = "\${raw}";
|
||||
style = "bg:fourth fg:white";
|
||||
format = "[$symbol($version) ]($style)";
|
||||
};
|
||||
|
||||
golang = {
|
||||
symbol = " ";
|
||||
version_format = "\${raw}";
|
||||
style = "bg:fourth fg:white";
|
||||
format = "[$symbol($version) ]($style)";
|
||||
};
|
||||
|
||||
python = {
|
||||
symbol = " ";
|
||||
version_format = "\${raw}";
|
||||
style = "bg:fourth fg:white";
|
||||
python_binary = [ "./venv/bin/python" "./env/Scripts/python" "python" "python3" "python2" ];
|
||||
format = "[$symbol($version)]($style)[ (\($virtualenv\)) ](bg:fourth fg:white)";
|
||||
};
|
||||
|
||||
conda = {
|
||||
symbol = " ";
|
||||
style = "bg:fourth fg:white";
|
||||
ignore_base = false;
|
||||
format = "[$symbol ($environment) ]($style)";
|
||||
};
|
||||
|
||||
haskell = {
|
||||
symbol = " ";
|
||||
version_format = "\${raw}";
|
||||
style = "bg:fourth fg:white";
|
||||
format = "[$symbol($version) ]($style)";
|
||||
};
|
||||
|
||||
rust = {
|
||||
symbol = " ";
|
||||
version_format = "\${raw}";
|
||||
style = "bg:fourth fg:white";
|
||||
format = "[$symbol($version) ]($style)";
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
symbol = " ";
|
||||
style = "bg:trans_pink fg:twelve";
|
||||
format = "[$symbol $branch ](bold $style)";
|
||||
};
|
||||
|
||||
git_status = {
|
||||
style = "bold bg:trans_pink fg:twelve";
|
||||
format = "([\($all_status$ahead_behind\)](bold $style))";
|
||||
};
|
||||
|
||||
cmd_duration = {
|
||||
style = "bg:eighth fg:twelve";
|
||||
format = "[ $duration ](bold $style)";
|
||||
};
|
||||
|
||||
character = {
|
||||
success_symbol = "[:3 ](bold fg:twelve bg:trans_blue)[](fg:trans_blue)";
|
||||
error_symbol = "[:o ](bold fg:twelve bg:trans_blue)[](fg:trans_blue)";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
11
modules/home-manager/shell/zoxide.nix
Normal file
11
modules/home-manager/shell/zoxide.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
options = [
|
||||
"--cmd cd"
|
||||
];
|
||||
};
|
||||
|
||||
}
|
75
modules/home-manager/syncthing.nix
Normal file
75
modules/home-manager/syncthing.nix
Normal file
|
@ -0,0 +1,75 @@
|
|||
{ lib, config, ... }:
|
||||
let
|
||||
deviceList = builtins.attrNames config.common.syncthing.devices;
|
||||
in
|
||||
{
|
||||
|
||||
options = {
|
||||
common.syncthing = {
|
||||
|
||||
enable = lib.mkEnableOption "enable syncthing";
|
||||
|
||||
devices = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.submodule {
|
||||
|
||||
options.id = lib.mkOption { type = lib.types.str; };
|
||||
options.autoAcceptFolders = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
basePath = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/mnt/data";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config.home-manager.users.willifan.services.syncthing = lib.mkIf config.common.syncthing.enable {
|
||||
enable = lib.mkDefault true;
|
||||
overrideDevices = lib.mkDefault true;
|
||||
overrideFolders = lib.mkDefault true;
|
||||
guiAddress = "0.0.0.0:8384";
|
||||
passwordFile = config.sops.secrets."syncthing/password".path;
|
||||
settings = {
|
||||
gui.user = "willifan";
|
||||
devices = config.common.syncthing.devices;
|
||||
folders = lib.mkDefault {
|
||||
"Documents" = {
|
||||
id = "jtl6g-qjmwo";
|
||||
path = config.common.syncthing.basePath + "/Documents";
|
||||
devices = deviceList;
|
||||
};
|
||||
"Enpass" = lib.mkDefault {
|
||||
id = "ciksm-xsw4m";
|
||||
path = config.common.syncthing.basePath + "/Enpass";
|
||||
devices = deviceList;
|
||||
};
|
||||
"Pictures" = lib.mkDefault {
|
||||
id = "po4qj-q9t0t";
|
||||
path = config.common.syncthing.basePath + "/Pictures";
|
||||
devices = deviceList;
|
||||
};
|
||||
"Videos" = lib.mkDefault {
|
||||
id = "4wqf5-xasng";
|
||||
path = config.common.syncthing.basePath + "/Videos";
|
||||
devices = deviceList;
|
||||
};
|
||||
"Notes" = lib.mkDefault {
|
||||
id = "oc61n-iewgj";
|
||||
path = config.common.syncthing.basePath + "/Notes";
|
||||
devices = deviceList;
|
||||
};
|
||||
"Music" = lib.mkDefault {
|
||||
id = "xxh8a-3y2tq";
|
||||
path = config.common.syncthing.basePath + "/Music";
|
||||
devices = deviceList;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
10
modules/home-manager/tmux/default.nix
Normal file
10
modules/home-manager/tmux/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
home-manager.users.willifan = {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
9
modules/home-manager/utils/default.nix
Normal file
9
modules/home-manager/utils/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ... }:
|
||||
{
|
||||
home-manager.users.willifan = {
|
||||
services.avizo.enable = true;
|
||||
programs.bat.enable = true;
|
||||
programs.btop.enable = true;
|
||||
programs.yazi.enable = true;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue