Compare commits
4 Commits
8e34b7d8f3
...
main
Author | SHA1 | Date | |
---|---|---|---|
83bfa9fb82 | |||
68bde47d7e | |||
82ddd5bebb | |||
a5208fedba |
15
flake.lock
generated
15
flake.lock
generated
@ -7,16 +7,15 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1687871164,
|
||||
"narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=",
|
||||
"lastModified": 1691672736,
|
||||
"narHash": "sha256-HNPA/dKHerA0p4OsToEcW/DtTSXBcK5gFRsy/yPgV/Y=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38",
|
||||
"rev": "6e1eff9aac0e8d84bda7f2d60ba6108eea9b7e79",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-23.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@ -81,16 +80,16 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1690927903,
|
||||
"narHash": "sha256-D5gCaCROnjEKDOel//8TO/pOP87pAEtT0uT8X+0Bj/U=",
|
||||
"lastModified": 1691654369,
|
||||
"narHash": "sha256-gSILTEx1jRaJjwZxRlnu3ZwMn1FVNk80qlwiCX8kmpo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bd836ac5e5a7358dea73cb74a013ca32864ccb86",
|
||||
"rev": "ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-23.05",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -2,10 +2,10 @@
|
||||
description = "NixOS configuration";
|
||||
|
||||
inputs = { # All flake references
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; # Default stable nix packages
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # Default stable nix packages
|
||||
|
||||
home-manager = { # User package management
|
||||
url = "github:nix-community/home-manager/release-23.05";
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
|
3
home/blueman.nix
Normal file
3
home/blueman.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
services.blueman-applet.enable = true;
|
||||
}
|
@ -2,12 +2,15 @@
|
||||
home-manager.sharedModules = [
|
||||
./bash.nix
|
||||
./bat.nix
|
||||
./blueman.nix
|
||||
./dunst.nix
|
||||
./git.nix
|
||||
./gtk.nix
|
||||
./hyprland.nix
|
||||
./joshuto.nix
|
||||
./kitty.nix
|
||||
./librewolf.nix
|
||||
./mpv.nix
|
||||
./neovim.nix
|
||||
./swaylock.nix
|
||||
./waybar.nix
|
||||
|
@ -11,7 +11,7 @@
|
||||
gtk-xft-hinting = 1;
|
||||
gtk-xft-hintstyle = "hintfull";
|
||||
gtk-xft-rgba = "rgb";
|
||||
gtk-recent-files-enable = false;
|
||||
# gtk-recent-files-enable = false;
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
Settings = ''
|
||||
|
@ -8,16 +8,19 @@ in {
|
||||
env = XDG_SESSION_DESKTOP,hyprland
|
||||
env = GDK_BACKEND,wayland
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = WLR_NO_HARDWARE_CURSORS,1
|
||||
|
||||
monitor=eDP-1,1920x1080@60.096001,0x0,1
|
||||
|
||||
general {
|
||||
gaps_in = 0
|
||||
gaps_out = -1
|
||||
border_size = 0
|
||||
gaps_in = 5
|
||||
gaps_out = 5
|
||||
border_size = 2
|
||||
col.active_border = rgba(002B36ee) 45deg
|
||||
col.inactive_border = rgba(07364299)
|
||||
no_border_on_floating = false
|
||||
layout = dwindle
|
||||
no_cursor_warps = true
|
||||
}
|
||||
|
||||
input {
|
||||
@ -36,17 +39,18 @@ in {
|
||||
|
||||
decoration {
|
||||
rounding = 10
|
||||
blur = yes
|
||||
blur_size = 3
|
||||
blur_passes = 1
|
||||
blur_new_optimizations = on
|
||||
blur = true
|
||||
blur_size = 6
|
||||
blur_passes = 3
|
||||
blur_new_optimizations = true
|
||||
blur_ignore_opacity = true
|
||||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
col.shadow = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# animations {
|
||||
# enabled = true
|
||||
# enabled = 1
|
||||
# bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
# animation = windows, 1, 7, myBezier
|
||||
# animation = windowsOut, 1, 7, default, popin 80%
|
||||
@ -57,8 +61,9 @@ in {
|
||||
# }
|
||||
|
||||
dwindle {
|
||||
no_gaps_when_only = false
|
||||
preserve_split = yes
|
||||
# pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
}
|
||||
|
||||
master {
|
||||
@ -72,7 +77,10 @@ in {
|
||||
}
|
||||
|
||||
exec-once = waybar
|
||||
exec-once = sleep 0.1; swww init && swww img ${../assets/wallpaper_street.jpg}
|
||||
exec-once = hyprpaper
|
||||
exec-once = dunst
|
||||
exec-once = blueman-applet
|
||||
exec-once = nm-applet --indicator
|
||||
|
||||
$SUPER = ${modifier}
|
||||
$SUPER_SHIFT = ${modifier}_SHIFT
|
||||
@ -81,11 +89,59 @@ in {
|
||||
bind = $SUPER, Q, killactive
|
||||
bind = $SUPER, T, exec, kitty
|
||||
bind = $SUPER, B, exec, librewolf
|
||||
bind = $SUPER, L, exec, swaylock
|
||||
bind = $SUPER, F, fullscreen,1
|
||||
bind = $SUPER_SHIFT, F, fullscreen,0
|
||||
bind = $SUPER_SHIFT, H, splitratio, -0.05
|
||||
bind = $SUPER_SHIFT, L, splitratio, +0.05
|
||||
# bind = $SUPER, V, togglesplit,
|
||||
bind = $SUPER, V, togglesplit,
|
||||
bind = $SUPER, 1, exec, hyprland-relative-workspace b
|
||||
bind = $SUPER, 2, exec, hyprland-relative-workspace f
|
||||
bind = $SUPER_SHIFT, 1, exec, hyprland-relative-workspace b --with-window
|
||||
bind = $SUPER_SHIFT, 2, exec, hyprland-relative-workspace f --with-window
|
||||
|
||||
bind = $SUPER, left, movefocus, l
|
||||
bind = $SUPER, right, movefocus, r
|
||||
bind = $SUPER, up, movefocus, u
|
||||
bind = $SUPER, down, movefocus, d
|
||||
bind = $SUPER_SHIFT, left, movewindow, l
|
||||
bind = $SUPER_SHIFT, right, movewindow, r
|
||||
bind = $SUPER_SHIFT, up, movewindow, u
|
||||
bind = $SUPER_SHIFT, down, movewindow, d
|
||||
|
||||
bind = ALT, left, resizeactive, -40 0
|
||||
bind = ALT, down, resizeactive, 0 40
|
||||
bind = ALT, up, resizeactive, 0 -40
|
||||
bind = ALT, right, resizeactive, 40 0
|
||||
|
||||
bind = ALT, 1, workspace, 1
|
||||
bind = ALT, 2, workspace, 2
|
||||
bind = ALT, 3, workspace, 3
|
||||
bind = ALT, 4, workspace, 4
|
||||
bind = ALT, 5, workspace, 5
|
||||
bind = ALT, 6, workspace, 6
|
||||
bind = ALT, 7, workspace, 7
|
||||
bind = ALT, 8, workspace, 8
|
||||
bind = ALT, 9, workspace, 9
|
||||
bind = ALT, 0, workspace, 0
|
||||
|
||||
bind = ALTSHIFT,1,movetoworkspace,1
|
||||
bind = ALTSHIFT,2,movetoworkspace,2
|
||||
bind = ALTSHIFT,3,movetoworkspace,3
|
||||
bind = ALTSHIFT,4,movetoworkspace,4
|
||||
bind = ALTSHIFT,5,movetoworkspace,5
|
||||
bind = ALTSHIFT,6,movetoworkspace,6
|
||||
bind = ALTSHIFT,7,movetoworkspace,7
|
||||
bind = ALTSHIFT,8,movetoworkspace,8
|
||||
bind = ALTSHIFT,9,movetoworkspace,9
|
||||
bind = ALTSHIFT,0,movetoworkspace,0
|
||||
bind = ALTSHIFT,left,movetoworkspace,-1
|
||||
bind = ALTSHIFT,right,movetoworkspace,+1
|
||||
|
||||
bind = CTRL,right,resizeactive,20 0
|
||||
bind = CTRL,left,resizeactive,-20 0
|
||||
bind = CTRL,up,resizeactive,0 -20
|
||||
bind = CTRL,down,resizeactive,0 20
|
||||
|
||||
# Move/resize windows with super + LMB/RMB and dragging
|
||||
bindm = $SUPER, mouse:272, movewindow
|
||||
@ -99,4 +155,8 @@ in {
|
||||
bindl=, XF86MonBrightnessUp, exec, brightnessctl set +5% && notify-send -t 2000 "Increased brightness to" "$(brightnessctl get)"
|
||||
|
||||
'';
|
||||
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
||||
preload = ${../assets/wallpaper_street.jpg}
|
||||
wallpaper = eDP-1,${../assets/wallpaper_street.jpg}
|
||||
'';
|
||||
}
|
||||
|
899
home/joshuto.nix
Normal file
899
home/joshuto.nix
Normal file
@ -0,0 +1,899 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.joshuto = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
display = {
|
||||
automatically_count_files = true;
|
||||
show_borders = false;
|
||||
show_hidden = true;
|
||||
show_icons = true;
|
||||
line_number_style = "absolute";
|
||||
collapse_preview = false;
|
||||
};
|
||||
|
||||
preview = {
|
||||
max_preview_size = 10000000000;
|
||||
preview_script = "~/.config/joshuto/preview.sh";
|
||||
preview_shown_hook_script = "~/.config/joshuto/kitty-show.sh";
|
||||
preview_removed_hook_script = "~/.config/joshuto/kitty-remove.sh";
|
||||
};
|
||||
};
|
||||
|
||||
mimetype = {
|
||||
class = {
|
||||
audio_default = [
|
||||
{ command = "mpv"; args = [ "--" ]; }
|
||||
{ command = "mediainfo"; confirm_exit = true; }
|
||||
];
|
||||
|
||||
image_default = [
|
||||
{ command = "pqiv"; args = [ "--" ]; fork = true; silent = true; }
|
||||
];
|
||||
|
||||
video_default = [
|
||||
{ command = "mpv"; args = [ "--" ]; fork = true; silent = true; }
|
||||
{ command = "mediainfo"; confirm_exit = true; }
|
||||
{ command = "mpv"; args = [ "--mute" "on" "--" ]; fork = true; silent = true; }
|
||||
];
|
||||
|
||||
text_default = [
|
||||
{ command = "nvim"; }
|
||||
];
|
||||
|
||||
reader_default = [
|
||||
{ command = "zathura"; fork = true; silent = true; }
|
||||
];
|
||||
|
||||
libreoffice_default = [
|
||||
{ command = "libreoffice"; fork = true; silent = true; }
|
||||
];
|
||||
};
|
||||
|
||||
extension = {
|
||||
## image formats
|
||||
avif."inherit" = "image_default";
|
||||
bmp."inherit" = "image_default";
|
||||
gif."inherit" = "image_default";
|
||||
heic."inherit" = "image_default";
|
||||
jpeg."inherit" = "image_default";
|
||||
jpe."inherit" = "image_default";
|
||||
jpg."inherit" = "image_default";
|
||||
pgm."inherit" = "image_default";
|
||||
png."inherit" = "image_default";
|
||||
ppm."inherit" = "image_default";
|
||||
webp."inherit" = "image_default";
|
||||
|
||||
## audio formats
|
||||
flac."inherit" = "audio_default";
|
||||
m4a."inherit" = "audio_default";
|
||||
mp3."inherit" = "audio_default";
|
||||
ogg."inherit" = "audio_default";
|
||||
wav."inherit" = "audio_default";
|
||||
|
||||
## video formats
|
||||
avi."inherit" = "video_default";
|
||||
av1."inherit" = "video_default";
|
||||
flv."inherit" = "video_default";
|
||||
mkv."inherit" = "video_default";
|
||||
m4v."inherit" = "video_default";
|
||||
mov."inherit" = "video_default";
|
||||
mp4."inherit" = "video_default";
|
||||
ts."inherit" = "video_default";
|
||||
webm."inherit" = "video_default";
|
||||
wmv."inherit" = "video_default";
|
||||
|
||||
## text formats
|
||||
build."inherit" = "text_default";
|
||||
c."inherit" = "text_default";
|
||||
cmake."inherit" = "text_default";
|
||||
conf."inherit" = "text_default";
|
||||
cpp."inherit" = "text_default";
|
||||
css."inherit" = "text_default";
|
||||
csv."inherit" = "text_default";
|
||||
cu."inherit" = "text_default";
|
||||
ebuild."inherit" = "text_default";
|
||||
eex."inherit" = "text_default";
|
||||
env."inherit" = "text_default";
|
||||
ex."inherit" = "text_default";
|
||||
exs."inherit" = "text_default";
|
||||
go."inherit" = "text_default";
|
||||
h."inherit" = "text_default";
|
||||
hpp."inherit" = "text_default";
|
||||
hs."inherit" = "text_default";
|
||||
html."inherit" = "text_default";
|
||||
ini."inherit" = "text_default";
|
||||
java."inherit" = "text_default";
|
||||
js."inherit" = "text_default";
|
||||
json."inherit" = "text_default";
|
||||
kt."inherit" = "text_default";
|
||||
lock."inherit" = "text_default";
|
||||
lua."inherit" = "text_default";
|
||||
log."inherit" = "text_default";
|
||||
md."inherit" = "text_default";
|
||||
micro."inherit" = "text_default";
|
||||
ninja."inherit" = "text_default";
|
||||
py."inherit" = "text_default";
|
||||
rkt."inherit" = "text_default";
|
||||
rs."inherit" = "text_default";
|
||||
scss."inherit" = "text_default";
|
||||
sh."inherit" = "text_default";
|
||||
srt."inherit" = "text_default";
|
||||
svelte."inherit" = "text_default";
|
||||
toml."inherit" = "text_default";
|
||||
tsx."inherit" = "text_default";
|
||||
txt."inherit" = "text_default";
|
||||
vim."inherit" = "text_default";
|
||||
xml."inherit" = "text_default";
|
||||
yaml."inherit" = "text_default";
|
||||
yml."inherit" = "text_default";
|
||||
|
||||
# archive formats
|
||||
"7z".app_list = [{ command = "7z"; args = [ "x" ]; confirm_exit = true; }];
|
||||
rar.app_list = [
|
||||
{ command = "unar"; confirm_exit = true; }
|
||||
{ command = "file-roller"; fork = true; silent = true; }
|
||||
];
|
||||
zip.app_list = [
|
||||
{ command = "unzip"; confirm_exit = true; }
|
||||
{ command = "file-roller"; fork = true; silent = true; }
|
||||
];
|
||||
|
||||
# misc formats
|
||||
aup.app_list = [
|
||||
{ command = "audacity"; fork = true; silent = true; }
|
||||
];
|
||||
|
||||
odt."inherit" = "libreoffice_default";
|
||||
odf."inherit" = "libreoffice_default";
|
||||
ods."inherit" = "libreoffice_default";
|
||||
odp."inherit" = "libreoffice_default";
|
||||
|
||||
doc."inherit" = "libreoffice_default";
|
||||
docx."inherit" = "libreoffice_default";
|
||||
xls."inherit" = "libreoffice_default";
|
||||
xlsx."inherit" = "libreoffice_default";
|
||||
ppt."inherit" = "libreoffice_default";
|
||||
pptx."inherit" = "libreoffice_default";
|
||||
|
||||
pdf."inherit" = "reader_default";
|
||||
|
||||
kra.app_list = [
|
||||
{ command = "krita"; fork = true; silent = true; }
|
||||
];
|
||||
kdenlive.app_list = [
|
||||
{ command = "kdenlive"; fork = true; silent = true; }
|
||||
];
|
||||
|
||||
tex.app_list = [
|
||||
{ command = "micro"; }
|
||||
{ command = "gedit"; fork = true; silent = true; }
|
||||
{ command = "bat"; confirm_exit = true; }
|
||||
{ command = "pdflatex"; }
|
||||
];
|
||||
|
||||
torrent.app_list = [
|
||||
{ command = "transmission-gtk"; }
|
||||
];
|
||||
};
|
||||
|
||||
mimetype = {
|
||||
application.subtype.octet-stream."inherit" = "video_default";
|
||||
text."inherit" = "text_default";
|
||||
video."inherit" = "video_default";
|
||||
};
|
||||
};
|
||||
|
||||
keymap = {
|
||||
default_view = {
|
||||
keymap = [
|
||||
{ keys = [ "escape" ]; command = "escape"; }
|
||||
{ keys = [ "ctrl+t" ]; command = "new_tab"; }
|
||||
{ keys = [ "alt+t" ]; command = "new_tab --cursor"; }
|
||||
{ keys = [ "T" ]; command = "new_tab --current"; }
|
||||
{ keys = [ "W" ]; command = "close_tab"; }
|
||||
{ keys = [ "ctrl+w" ]; command = "close_tab"; }
|
||||
{ keys = [ "q" ]; command = "close_tab"; }
|
||||
{ keys = [ "ctrl+c" ]; command = "quit"; }
|
||||
{ keys = [ "o" ]; command = "quit --output-selected-files"; }
|
||||
|
||||
{ keys = [ "R" ]; command = "reload_dirlist"; }
|
||||
{ keys = [ "z" "h" ]; command = "toggle_hidden"; }
|
||||
{ keys = [ "ctrl+h" ]; command = "toggle_hidden"; }
|
||||
{ keys = [ "\t" ]; command = "tab_switch 1"; }
|
||||
{ keys = [ "backtab" ]; command = "tab_switch -1"; }
|
||||
|
||||
{ keys = [ "alt+1" ]; command = "tab_switch_index 1"; }
|
||||
{ keys = [ "alt+2" ]; command = "tab_switch_index 2"; }
|
||||
{ keys = [ "alt+3" ]; command = "tab_switch_index 3"; }
|
||||
{ keys = [ "alt+4" ]; command = "tab_switch_index 4"; }
|
||||
{ keys = [ "alt+5" ]; command = "tab_switch_index 5"; }
|
||||
|
||||
{ keys = [ "1" ]; command = "numbered_command 1"; }
|
||||
{ keys = [ "2" ]; command = "numbered_command 2"; }
|
||||
{ keys = [ "3" ]; command = "numbered_command 3"; }
|
||||
{ keys = [ "4" ]; command = "numbered_command 4"; }
|
||||
{ keys = [ "5" ]; command = "numbered_command 5"; }
|
||||
{ keys = [ "6" ]; command = "numbered_command 6"; }
|
||||
{ keys = [ "7" ]; command = "numbered_command 7"; }
|
||||
{ keys = [ "8" ]; command = "numbered_command 8"; }
|
||||
{ keys = [ "9" ]; command = "numbered_command 9"; }
|
||||
|
||||
# arrow keys
|
||||
{ keys = [ "arrow_up" ]; command = "cursor_move_up"; }
|
||||
{ keys = [ "arrow_down" ]; command = "cursor_move_down"; }
|
||||
{ keys = [ "arrow_left" ]; command = "cd .."; }
|
||||
{ keys = [ "arrow_right" ]; command = "open"; }
|
||||
{ keys = [ "\n" ]; command = "open"; }
|
||||
{ keys = [ "home" ]; command = "cursor_move_home"; }
|
||||
{ keys = [ "end" ]; command = "cursor_move_end"; }
|
||||
{ keys = [ "page_up" ]; command = "cursor_move_page_up"; }
|
||||
{ keys = [ "page_down" ]; command = "cursor_move_page_down"; }
|
||||
{ keys = [ "ctrl+u" ]; command = "cursor_move_page_up 0.5"; }
|
||||
{ keys = [ "ctrl+d" ]; command = "cursor_move_page_down 0.5"; }
|
||||
|
||||
# vim-like keybindings
|
||||
{ keys = [ "j" ]; command = "cursor_move_down"; }
|
||||
{ keys = [ "k" ]; command = "cursor_move_up"; }
|
||||
{ keys = [ "h" ]; command = "cd .."; }
|
||||
{ keys = [ "l" ]; command = "open"; }
|
||||
{ keys = [ "g" "g" ]; command = "cursor_move_home"; }
|
||||
{ keys = [ "G" ]; command = "cursor_move_end"; }
|
||||
{ keys = [ "r" ]; command = "open_with"; }
|
||||
|
||||
{ keys = [ "H" ]; command = "cursor_move_page_home"; }
|
||||
{ keys = [ "L" ]; command = "cursor_move_page_middle"; }
|
||||
{ keys = [ "M" ]; command = "cursor_move_page_end"; }
|
||||
|
||||
{ keys = [ "[" ]; command = "parent_cursor_move_up"; }
|
||||
{ keys = [ "]" ]; command = "parent_cursor_move_down"; }
|
||||
|
||||
{ keys = [ "c" "d" ]; command = ":cd "; }
|
||||
{ keys = [ "d" "d" ]; command = "cut_files"; }
|
||||
{ keys = [ "y" "y" ]; command = "copy_files"; }
|
||||
{ keys = [ "y" "n" ]; command = "copy_filename"; }
|
||||
{ keys = [ "y" "." ]; command = "copy_filename_without_extension"; }
|
||||
{ keys = [ "y" "p" ]; command = "copy_filepath"; }
|
||||
{ keys = [ "y" "d" ]; command = "copy_dirpath"; }
|
||||
|
||||
{ keys = [ "p" "l" ]; command = "symlink_files --relative=false"; }
|
||||
{ keys = [ "p" "L" ]; command = "symlink_files --relative=true"; }
|
||||
|
||||
{ keys = [ "delete" ]; command = "delete_files"; }
|
||||
{ keys = [ "d" "D" ]; command = "delete_files"; }
|
||||
{ keys = [ "D" ]; command = "delete_files"; }
|
||||
|
||||
{ keys = [ "p" "p" ]; command = "paste_files"; }
|
||||
{ keys = [ "p" "o" ]; command = "paste_files --overwrite=true"; }
|
||||
|
||||
{ keys = [ "a" ]; command = "rename_append"; }
|
||||
{ keys = [ "A" ]; command = "rename_prepend"; }
|
||||
|
||||
{ keys = [ "f" "t" ]; command = ":touch "; }
|
||||
|
||||
{ keys = [ " " ]; command = "select --toggle=true"; }
|
||||
{ keys = [ "t" ]; command = "select --all=true --toggle=true"; }
|
||||
{ keys = [ "V" ]; command = "toggle_visual"; }
|
||||
|
||||
{ keys = [ "w" ]; command = "show_tasks --exit-key=w"; }
|
||||
{ keys = [ "b" "b" ]; command = "bulk_rename"; }
|
||||
{ keys = [ "=" ]; command = "set_mode"; }
|
||||
|
||||
{ keys = [ ":" ]; command = ":"; }
|
||||
{ keys = [ ";" ]; command = ":"; }
|
||||
|
||||
{ keys = [ "'" ]; command = ":shell "; }
|
||||
{ keys = [ "m" "k" ]; command = ":mkdir "; }
|
||||
{ keys = [ "c" "w" ]; command = ":rename "; }
|
||||
|
||||
{ keys = [ "/" ]; command = ":search "; }
|
||||
{ keys = [ "|" ]; command = ":search_inc "; }
|
||||
{ keys = [ "\\" ]; command = ":search_glob "; }
|
||||
{ keys = [ "S" ]; command = "search_fzf"; }
|
||||
{ keys = [ "C" ]; command = "subdir_fzf"; }
|
||||
|
||||
{ keys = [ "n" ]; command = "search_next"; }
|
||||
{ keys = [ "N" ]; command = "search_prev"; }
|
||||
|
||||
{ keys = [ "s" "r" ]; command = "sort reverse"; }
|
||||
{ keys = [ "s" "l" ]; command = "sort lexical"; }
|
||||
{ keys = [ "s" "m" ]; command = "sort mtime"; }
|
||||
{ keys = [ "s" "n" ]; command = "sort natural"; }
|
||||
{ keys = [ "s" "s" ]; command = "sort size"; }
|
||||
{ keys = [ "s" "e" ]; command = "sort ext"; }
|
||||
|
||||
{ keys = [ "m" "s" ]; command = "linemode size"; }
|
||||
{ keys = [ "m" "m" ]; command = "linemode mtime"; }
|
||||
{ keys = [ "m" "M" ]; command = "linemode sizemtime"; }
|
||||
|
||||
{ keys = [ "g" "r" ]; command = "cd /"; }
|
||||
{ keys = [ "g" "c" ]; command = "cd ~/.config"; }
|
||||
{ keys = [ "g" "d" ]; command = "cd ~/Downloads"; }
|
||||
{ keys = [ "g" "e" ]; command = "cd /etc"; }
|
||||
{ keys = [ "g" "h" ]; command = "cd ~/"; }
|
||||
{ keys = [ "?" ]; command = "help"; }
|
||||
];
|
||||
};
|
||||
|
||||
task_view = {
|
||||
keymap = [
|
||||
# arrow keys
|
||||
{ keys = [ "arrow_up" ]; command = "cursor_move_up"; }
|
||||
{ keys = [ "arrow_down" ]; command = "cursor_move_down"; }
|
||||
{ keys = [ "home" ]; command = "cursor_move_home"; }
|
||||
{ keys = [ "end" ]; command = "cursor_move_end"; }
|
||||
|
||||
# vim-like keybindings
|
||||
{ keys = [ "j" ]; command = "cursor_move_down"; }
|
||||
{ keys = [ "k" ]; command = "cursor_move_up"; }
|
||||
{ keys = [ "g" "g" ]; command = "cursor_move_home"; }
|
||||
{ keys = [ "G" ]; command = "cursor_move_end"; }
|
||||
|
||||
{ keys = [ "w" ]; command = "show_tasks"; }
|
||||
{ keys = [ "escape" ]; command = "show_tasks"; }
|
||||
];
|
||||
};
|
||||
|
||||
help_view = {
|
||||
keymap = [
|
||||
# arrow keys
|
||||
{ keys = [ "arrow_up" ]; command = "cursor_move_up"; }
|
||||
{ keys = [ "arrow_down" ]; command = "cursor_move_down"; }
|
||||
{ keys = [ "home" ]; command = "cursor_move_home"; }
|
||||
{ keys = [ "end" ]; command = "cursor_move_end"; }
|
||||
|
||||
# vim-like keybindings
|
||||
{ keys = [ "j" ]; command = "cursor_move_down"; }
|
||||
{ keys = [ "k" ]; command = "cursor_move_up"; }
|
||||
{ keys = [ "g" "g" ]; command = "cursor_move_home"; }
|
||||
{ keys = [ "G" ]; command = "cursor_move_end"; }
|
||||
|
||||
{ keys = [ "w" ]; command = "show_tasks"; }
|
||||
{ keys = [ "escape" ]; command = "show_tasks"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
theme = {
|
||||
selection = {
|
||||
fg = "light_yellow";
|
||||
bold = true;
|
||||
};
|
||||
|
||||
visual_mode_selection = {
|
||||
fg = "light_red";
|
||||
bold = true;
|
||||
};
|
||||
|
||||
selection.prefix = {
|
||||
prefix = " ";
|
||||
size = 2;
|
||||
};
|
||||
|
||||
executable = {
|
||||
fg = "light_green";
|
||||
bold = true;
|
||||
};
|
||||
|
||||
regular = {
|
||||
fg = "white";
|
||||
};
|
||||
|
||||
directory = {
|
||||
fg = "light_blue";
|
||||
bold = true;
|
||||
};
|
||||
|
||||
link = {
|
||||
fg = "cyan";
|
||||
bold = true;
|
||||
};
|
||||
|
||||
link_invalid = {
|
||||
fg = "red";
|
||||
bold = true;
|
||||
};
|
||||
|
||||
socket = {
|
||||
fg = "light_magenta";
|
||||
bold = true;
|
||||
};
|
||||
|
||||
ext = {
|
||||
bmp.fg = "yellow";
|
||||
gif.fg = "yellow";
|
||||
heic.fg = "yellow";
|
||||
jpg.fg = "yellow";
|
||||
jpeg.fg = "yellow";
|
||||
pgm.fg = "yellow";
|
||||
png.fg = "yellow";
|
||||
ppm.fg = "yellow";
|
||||
svg.fg = "yellow";
|
||||
|
||||
wav.fg = "magenta";
|
||||
flac.fg = "magenta";
|
||||
mp3.fg = "magenta";
|
||||
amr.fg = "magenta";
|
||||
|
||||
avi.fg = "magenta";
|
||||
flv.fg = "magenta";
|
||||
m3u.fg = "magenta";
|
||||
m4a.fg = "magenta";
|
||||
m4v.fg = "magenta";
|
||||
mkv.fg = "magenta";
|
||||
mov.fg = "magenta";
|
||||
mp4.fg = "magenta";
|
||||
mpg.fg = "magenta";
|
||||
rmvb.fg = "magenta";
|
||||
webm.fg = "magenta";
|
||||
wmv.fg = "magenta";
|
||||
|
||||
"7z".fg = "red";
|
||||
bz2.fg = "red";
|
||||
gz.fg = "red";
|
||||
rar.fg = "red";
|
||||
tar.fg = "red";
|
||||
tgz.fg = "red";
|
||||
xz.fg = "red";
|
||||
zip.fg = "red";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"joshuto/preview.sh" = {
|
||||
executable = true;
|
||||
text = /* bash */ ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
IFS=$'\n'
|
||||
set -o noclobber -o noglob -o nounset -o pipefail
|
||||
|
||||
FILE_PATH=""
|
||||
PREVIEW_WIDTH=10
|
||||
PREVIEW_HEIGHT=10
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
"--path")
|
||||
shift
|
||||
FILE_PATH="$1"
|
||||
;;
|
||||
"--preview-width")
|
||||
shift
|
||||
PREVIEW_WIDTH="$1"
|
||||
;;
|
||||
"--preview-height")
|
||||
shift
|
||||
PREVIEW_HEIGHT="$1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
realpath=$(realpath "$FILE_PATH")
|
||||
|
||||
handle_extension() {
|
||||
case "''${FILE_EXTENSION_LOWER}" in
|
||||
lock)
|
||||
cat "''${FILE_PATH}" && exit 0
|
||||
exit 1;;
|
||||
|
||||
rar)
|
||||
lsar "''${FILE_PATH}" && exit 0
|
||||
exit 1;;
|
||||
7z)
|
||||
7z l -p -- "''${FILE_PATH}" && exit 0
|
||||
exit 1;;
|
||||
|
||||
pdf)
|
||||
pdftotext -l 10 -nopgbrk -q -- "''${FILE_PATH}" - | \
|
||||
fmt -w "''${PREVIEW_WIDTH}" && exit 0
|
||||
mutool draw -F txt -i -- "''${FILE_PATH}" 1-10 | \
|
||||
fmt -w "''${PREVIEW_WIDTH}" && exit 0
|
||||
exiftool "''${FILE_PATH}" && exit 0
|
||||
exit 1;;
|
||||
|
||||
torrent)
|
||||
transmission-show -- "''${FILE_PATH}" && exit 0
|
||||
exit 1;;
|
||||
|
||||
json)
|
||||
jq --color-output . "''${FILE_PATH}" && exit 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
handle_mime() {
|
||||
local mimetype="''${1}"
|
||||
|
||||
case "''${mimetype}" in
|
||||
## Text
|
||||
text/* | */xml)
|
||||
bat --color=always --paging=never \
|
||||
--style=plain \
|
||||
--terminal-width="''${PREVIEW_WIDTH}" \
|
||||
"''${FILE_PATH}" && exit 0
|
||||
cat "''${FILE_PATH}" && exit 0
|
||||
exit 1;;
|
||||
|
||||
## Image
|
||||
image/*)
|
||||
exit 5;;
|
||||
|
||||
## Video and audio
|
||||
video/* | audio/*)
|
||||
echo "$realpath"
|
||||
mediainfo "''${FILE_PATH}" && exit 0
|
||||
exiftool "''${FILE_PATH}" && exit 0
|
||||
exit 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
FILE_EXTENSION="''${FILE_PATH##*.}"
|
||||
FILE_EXTENSION_LOWER="$(printf "%s" "''${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
|
||||
handle_extension
|
||||
MIMETYPE="$( file --dereference --brief --mime-type -- "''${FILE_PATH}" )"
|
||||
handle_mime "''${MIMETYPE}"
|
||||
|
||||
exit 1
|
||||
'';
|
||||
};
|
||||
|
||||
"joshuto/kitty-show.sh" = {
|
||||
executable = true;
|
||||
text = /* bash */ ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
FILE_PATH="$1" # Full path of the previewed file
|
||||
PREVIEW_X_COORD="$2" # x coordinate of upper left cell of preview area
|
||||
PREVIEW_Y_COORD="$3" # y coordinate of upper left cell of preview area
|
||||
PREVIEW_WIDTH="$4" # Width of the preview pane (number of fitting characters)
|
||||
PREVIEW_HEIGHT="$5" # Height of the preview pane (number of fitting characters)
|
||||
|
||||
TMP_FILE="$HOME/.cache/joshuto/thumbcache.png"
|
||||
|
||||
mimetype=$(file --mime-type -Lb "$FILE_PATH")
|
||||
|
||||
function image {
|
||||
kitty +kitten icat \
|
||||
--transfer-mode=file \
|
||||
--clear 2>/dev/null
|
||||
kitty +kitten icat \
|
||||
--transfer-mode=file \
|
||||
--place "''${PREVIEW_WIDTH}x''${PREVIEW_HEIGHT}@''${PREVIEW_X_COORD}x''${PREVIEW_Y_COORD}" \
|
||||
"$1" 2>/dev/null
|
||||
}
|
||||
|
||||
case "$mimetype" in
|
||||
image/*)
|
||||
image "''${FILE_PATH}"
|
||||
;;
|
||||
*)
|
||||
kitty +kitten icat \
|
||||
--transfer-mode=file \
|
||||
--clear 2>/dev/null
|
||||
;;
|
||||
esac
|
||||
'';
|
||||
};
|
||||
|
||||
"joshuto/kitty-remove.sh" = {
|
||||
executable = true;
|
||||
text = /* bash */ ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
kitty +kitten icat --transfer-mode=file --clear 2>/dev/null
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."joshuto/icons.toml".text = /* toml */ ''
|
||||
# Default fallback icons
|
||||
[defaults]
|
||||
file = ""
|
||||
directory = ""
|
||||
|
||||
# Directory exact match icons
|
||||
[directory_exact]
|
||||
# English
|
||||
".git" = ""
|
||||
"Desktop" = ""
|
||||
"Documents" = ""
|
||||
"Downloads" = ""
|
||||
"Dotfiles" = ""
|
||||
"Dropbox" = ""
|
||||
"Music" = ""
|
||||
"Pictures" = ""
|
||||
"Public" = ""
|
||||
"Templates" = ""
|
||||
"Videos" = ""
|
||||
|
||||
# File exact match icons
|
||||
[file_exact]
|
||||
".bash_aliases" = ""
|
||||
".bash_history" = ""
|
||||
".bash_logout" = ""
|
||||
".bash_profile" = ""
|
||||
".bashprofile" = ""
|
||||
".bashrc" = ""
|
||||
".dmrc" = ""
|
||||
".DS_Store" = ""
|
||||
".fasd" = ""
|
||||
".fehbg" = ""
|
||||
".gitattributes" = ""
|
||||
".gitconfig" = ""
|
||||
".gitignore" = ""
|
||||
".gitlab-ci.yml" = ""
|
||||
".gvimrc" = ""
|
||||
".inputrc" = ""
|
||||
".jack-settings" = ""
|
||||
".mime.types" = ""
|
||||
".ncmpcpp" = ""
|
||||
".nvidia-settings-rc" = ""
|
||||
".pam_environment" = ""
|
||||
".profile" = ""
|
||||
".recently-used" = ""
|
||||
".selected_editor" = ""
|
||||
".vim" = ""
|
||||
".viminfo" = ""
|
||||
".vimrc" = ""
|
||||
".Xauthority" = ""
|
||||
".Xdefaults" = ""
|
||||
".xinitrc" = ""
|
||||
".xinputrc" = ""
|
||||
".Xresources" = ""
|
||||
".zshrc" = ""
|
||||
"_gvimrc" = ""
|
||||
"_vimrc" = ""
|
||||
"a.out" = ""
|
||||
"authorized_keys" = ""
|
||||
"bspwmrc" = ""
|
||||
"cmakelists.txt" = ""
|
||||
"config" = ""
|
||||
"config.ac" = ""
|
||||
"config.m4" = ""
|
||||
"config.mk" = ""
|
||||
"config.ru" = ""
|
||||
"configure" = ""
|
||||
"docker-compose.yml" = ""
|
||||
"dockerfile" = ""
|
||||
"Dockerfile" = ""
|
||||
"dropbox" = ""
|
||||
"exact-match-case-sensitive-1.txt" = "X1"
|
||||
"exact-match-case-sensitive-2" = "X2"
|
||||
"favicon.ico" = ""
|
||||
"gemfile" = ""
|
||||
"gruntfile.coffee" = ""
|
||||
"gruntfile.js" = ""
|
||||
"gruntfile.ls" = ""
|
||||
"gulpfile.coffee" = ""
|
||||
"gulpfile.js" = ""
|
||||
"gulpfile.ls" = ""
|
||||
"ini" = ""
|
||||
"known_hosts" = ""
|
||||
"ledger" = ""
|
||||
"license" = ""
|
||||
"LICENSE" = ""
|
||||
"LICENSE.md" = ""
|
||||
"LICENSE.txt" = ""
|
||||
"Makefile" = ""
|
||||
"makefile" = ""
|
||||
"Makefile.ac" = ""
|
||||
"Makefile.in" = ""
|
||||
"mimeapps.list" = ""
|
||||
"mix.lock" = ""
|
||||
"node_modules" = ""
|
||||
"package-lock.json" = ""
|
||||
"package.json" = ""
|
||||
"playlists" = ""
|
||||
"procfile" = ""
|
||||
"Rakefile" = ""
|
||||
"rakefile" = ""
|
||||
"react.jsx" = ""
|
||||
"README" = ""
|
||||
"README.markdown" = ""
|
||||
"README.md" = ""
|
||||
"README.rst" = ""
|
||||
"README.txt" = ""
|
||||
"sxhkdrc" = ""
|
||||
"user-dirs.dirs" = ""
|
||||
"webpack.config.js" = ""
|
||||
|
||||
# File extension match
|
||||
[ext]
|
||||
"7z" = ""
|
||||
"a" = ""
|
||||
"ai" = ""
|
||||
"apk" = ""
|
||||
"asm" = ""
|
||||
"asp" = ""
|
||||
"aup" = ""
|
||||
"avi" = ""
|
||||
"awk" = ""
|
||||
"bash" = ""
|
||||
"bat" = ""
|
||||
"bmp" = ""
|
||||
"bz2" = ""
|
||||
"c" = ""
|
||||
"c++" = ""
|
||||
"cab" = ""
|
||||
"cbr" = ""
|
||||
"cbz" = ""
|
||||
"cc" = ""
|
||||
"class" = ""
|
||||
"clj" = ""
|
||||
"cljc" = ""
|
||||
"cljs" = ""
|
||||
"cmake" = ""
|
||||
"coffee" = ""
|
||||
"conf" = ""
|
||||
"cp" = ""
|
||||
"cpio" = ""
|
||||
"cpp" = ""
|
||||
"cs" = ""
|
||||
"csh" = ""
|
||||
"css" = ""
|
||||
"cue" = ""
|
||||
"cvs" = ""
|
||||
"cxx" = ""
|
||||
"d" = ""
|
||||
"dart" = ""
|
||||
"db" = ""
|
||||
"deb" = ""
|
||||
"diff" = ""
|
||||
"dll" = ""
|
||||
"doc" = ""
|
||||
"docx" = ""
|
||||
"dump" = ""
|
||||
"edn" = ""
|
||||
"eex" = ""
|
||||
"efi" = ""
|
||||
"ejs" = ""
|
||||
"elf" = ""
|
||||
"elm" = ""
|
||||
"epub" = ""
|
||||
"erl" = ""
|
||||
"ex" = ""
|
||||
"exe" = ""
|
||||
"exs" = ""
|
||||
"f//" = ""
|
||||
"fifo" = "|"
|
||||
"fish" = ""
|
||||
"flac" = ""
|
||||
"flv" = ""
|
||||
"fs" = ""
|
||||
"fsi" = ""
|
||||
"fsscript" = ""
|
||||
"fsx" = ""
|
||||
"gem" = ""
|
||||
"gemspec" = ""
|
||||
"gif" = ""
|
||||
"go" = ""
|
||||
"gz" = ""
|
||||
"gzip" = ""
|
||||
"h" = ""
|
||||
"haml" = ""
|
||||
"hbs" = ""
|
||||
"hh" = ""
|
||||
"hpp" = ""
|
||||
"hrl" = ""
|
||||
"hs" = ""
|
||||
"htaccess" = ""
|
||||
"htm" = ""
|
||||
"html" = ""
|
||||
"htpasswd" = ""
|
||||
"hxx" = ""
|
||||
"ico" = ""
|
||||
"img" = ""
|
||||
"ini" = ""
|
||||
"iso" = ""
|
||||
"jar" = ""
|
||||
"java" = ""
|
||||
"jl" = ""
|
||||
"jpeg" = ""
|
||||
"jpg" = ""
|
||||
"js" = ""
|
||||
"json" = ""
|
||||
"jsx" = ""
|
||||
"key" = ""
|
||||
"ksh" = ""
|
||||
"leex" = ""
|
||||
"less" = ""
|
||||
"lha" = ""
|
||||
"lhs" = ""
|
||||
"log" = ""
|
||||
"lua" = ""
|
||||
"lzh" = ""
|
||||
"lzma" = ""
|
||||
"m4a" = ""
|
||||
"m4v" = ""
|
||||
"markdown" = ""
|
||||
"md" = ""
|
||||
"mdx" = ""
|
||||
"mjs" = ""
|
||||
"mkv" = ""
|
||||
"ml" = "λ"
|
||||
"mli" = "λ"
|
||||
"mov" = ""
|
||||
"mp3" = ""
|
||||
"mp4" = ""
|
||||
"mpeg" = ""
|
||||
"mpg" = ""
|
||||
"msi" = ""
|
||||
"mustache" = ""
|
||||
"nix" = ""
|
||||
"o" = ""
|
||||
"ogg" = ""
|
||||
"pdf" = ""
|
||||
"php" = ""
|
||||
"pl" = ""
|
||||
"pm" = ""
|
||||
"png" = ""
|
||||
"pp" = ""
|
||||
"ppt" = ""
|
||||
"pptx" = ""
|
||||
"ps1" = ""
|
||||
"psb" = ""
|
||||
"psd" = ""
|
||||
"pub" = ""
|
||||
"py" = ""
|
||||
"pyc" = ""
|
||||
"pyd" = ""
|
||||
"pyo" = ""
|
||||
"r" = "ﳒ"
|
||||
"rake" = ""
|
||||
"rar" = ""
|
||||
"rb" = ""
|
||||
"rc" = ""
|
||||
"rlib" = ""
|
||||
"rmd" = ""
|
||||
"rom" = ""
|
||||
"rpm" = ""
|
||||
"rproj" = "鉶"
|
||||
"rs" = ""
|
||||
"rss" = ""
|
||||
"rtf" = ""
|
||||
"s" = ""
|
||||
"sass" = ""
|
||||
"scala" = ""
|
||||
"scss" = ""
|
||||
"sh" = ""
|
||||
"slim" = ""
|
||||
"sln" = ""
|
||||
"so" = ""
|
||||
"sql" = ""
|
||||
"styl" = ""
|
||||
"suo" = ""
|
||||
"swift" = ""
|
||||
"t" = ""
|
||||
"tar" = ""
|
||||
"tex" = "ﭨ"
|
||||
"tgz" = ""
|
||||
"toml" = ""
|
||||
"ts" = ""
|
||||
"tsx" = ""
|
||||
"twig" = ""
|
||||
"vim" = ""
|
||||
"vimrc" = ""
|
||||
"vue" = "﵂"
|
||||
"wav" = ""
|
||||
"webm" = ""
|
||||
"webmanifest" = ""
|
||||
"webp" = ""
|
||||
"xbps" = ""
|
||||
"xcplayground" = ""
|
||||
"xhtml" = ""
|
||||
"xls" = ""
|
||||
"xlsx" = ""
|
||||
"xml" = ""
|
||||
"xul" = ""
|
||||
"xz" = ""
|
||||
"yaml" = ""
|
||||
"yml" = ""
|
||||
"zip" = ""
|
||||
"zsh" = ""
|
||||
'';
|
||||
}
|
@ -5,6 +5,7 @@
|
||||
enable_audio_bell = false;
|
||||
close_on_child_death = true;
|
||||
cursor_blink_interval = 0;
|
||||
background_opacity = "0.8";
|
||||
|
||||
open_url_with = "librewolf";
|
||||
wayland_titlebar_color = "background";
|
||||
|
45
home/mpv.nix
Normal file
45
home/mpv.nix
Normal file
@ -0,0 +1,45 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
|
||||
config = {
|
||||
profile = "gpu-hq";
|
||||
scale = "ewa_lanczossharp";
|
||||
cscale = "ewa_lanczossharp";
|
||||
video-sync = "display-resample";
|
||||
interpolation = true;
|
||||
tscale = "oversample";
|
||||
|
||||
sub-auto = "fuzzy";
|
||||
sub-font = "Noto Sans CJK JP Medium";
|
||||
sub-blur = 10;
|
||||
sub-file-paths = "subs:subtitles:字幕";
|
||||
|
||||
screenshot-format = "png";
|
||||
|
||||
title = "\${filename} - mpv";
|
||||
script-opts = "osc-title=\${filename},osc-boxalpha=150,osc-visibility=never,osc-boxvideo=yes";
|
||||
|
||||
osc = "no";
|
||||
osd-on-seek = "no";
|
||||
osd-bar = "no";
|
||||
osd-bar-w = 30;
|
||||
osd-bar-h = "0.2";
|
||||
osd-duration = 750;
|
||||
|
||||
really-quiet = "yes";
|
||||
autofit = "65%";
|
||||
};
|
||||
|
||||
bindings = {
|
||||
"ctrl+shift+a" = "script-message osc-visibility cycle";
|
||||
};
|
||||
|
||||
scripts = with pkgs.mpvScripts; [
|
||||
mpris
|
||||
thumbnail
|
||||
];
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{ config, pkgs, ...}:
|
||||
|
||||
{
|
||||
home.sessionVariables.Editor = "nvim";
|
||||
home.sessionVariables.EDITOR = "nvim";
|
||||
|
||||
programs = {
|
||||
neovim = {
|
||||
|
@ -1,21 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.swaylock = {
|
||||
package = pkgs."swaylock-effects";
|
||||
|
||||
settings = {
|
||||
show-keyboard-layout = true;
|
||||
daemonize = true;
|
||||
effect-blur = "20x2";
|
||||
clock = true;
|
||||
indicator = true;
|
||||
font-size = 25;
|
||||
indicator-radius = 85;
|
||||
indicator-thickness = 16;
|
||||
screenshots = true;
|
||||
fade-in = 1;
|
||||
};
|
||||
};
|
||||
xdg.configFile."swaylog/config".text = ''
|
||||
screenshots
|
||||
clock
|
||||
indicator
|
||||
indicator-radius 100
|
||||
effect-blur 7x5
|
||||
fade-in 0.2
|
||||
'';
|
||||
}
|
||||
|
||||
|
483
home/waybar.nix
483
home/waybar.nix
@ -4,212 +4,333 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 20,
|
||||
"mod": "dock",
|
||||
"height": 32,
|
||||
"exclusive": true,
|
||||
"passthrough": false,
|
||||
"gtk-layer-shell": true,
|
||||
"modules-left": [
|
||||
"temperature",
|
||||
"cpu",
|
||||
"memory"
|
||||
],
|
||||
"modules-center": ["hyprland/window"],
|
||||
"modules-right": [
|
||||
"battery",
|
||||
"clock"
|
||||
],
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}"
|
||||
"modules-left": ["custom/padd","custom/l_end","custom/power","custom/r_end","custom/l_end","wlr/taskbar","custom/r_end","","custom/padd"],
|
||||
"modules-center": ["custom/padd","custom/l_end","clock","custom/r_end","custom/padd"],
|
||||
"modules-right": ["custom/padd","custom/l_end","tray","custom/r_end","custom/l_end","network","bluetooth","pulseaudio","custom/r_end","custom/padd"],
|
||||
|
||||
|
||||
"custom/power": {
|
||||
"format": "{}",
|
||||
"exec": "echo ; echo logout",
|
||||
"on-click": "wlogout -b 2 -c 0 -r 0 -L 930 -R 930 -T 300 -B 300 --protocol layer-shell",
|
||||
"interval" : 86400, // once every day
|
||||
"tooltip": true
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%H:%M}",
|
||||
"format-alt": "{:%b %d %Y}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 10,
|
||||
"format": " {}%",
|
||||
"max-length": 10,
|
||||
"on-click": "",
|
||||
},
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": " {}%",
|
||||
"format-alt":" {used:0.1f}GB",
|
||||
"max-length": 10,
|
||||
},
|
||||
"temperature": {
|
||||
"interval": 10,
|
||||
"format": " {temperatureC}°C",
|
||||
"format-alt":"temprature",
|
||||
"max-length": 10,
|
||||
},
|
||||
"battery": {
|
||||
"bat": "BAT0",
|
||||
"adapter": "ADP0",
|
||||
"interval": 60,
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"max-length": 20,
|
||||
|
||||
"wlr/taskbar": {
|
||||
"format": "{icon}",
|
||||
"format-warning": "{icon}",
|
||||
"format-critical": "{icon}",
|
||||
"format-charging": "<span font-family='Font Awesome 6 Free'></span>",
|
||||
"format-plugged": "",
|
||||
"format-notcharging": "",
|
||||
"format-alt": "{icon}<small> {time}</small>",
|
||||
"format-full": "",
|
||||
"format-icons": ["", "", ""]
|
||||
"icon-size": 18,
|
||||
"icon-theme": "Tela-circle-dracula",
|
||||
"spacing": 0,
|
||||
"tooltip-format": "{title}",
|
||||
"on-click": "activate",
|
||||
"on-click-middle": "close",
|
||||
"ignore-list": [
|
||||
"Alacritty"
|
||||
],
|
||||
"app_ids-mapping": {
|
||||
"firefoxdeveloperedition": "firefox-developer-edition"
|
||||
}
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": "{: %I:%M %p %a %d}",
|
||||
"format-alt": "{: %H:%M %b %Y}",
|
||||
"tooltip-format": "<tt><big>{calendar}</big></tt>"
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 18,
|
||||
"spacing": 5
|
||||
},
|
||||
|
||||
"network": {
|
||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||
"format-wifi": " {essid}",
|
||||
"format-ethernet": " Wired",
|
||||
"tooltip-format": " {ipaddr} {bandwidthUpBytes} {bandwidthDownBytes}",
|
||||
"format-linked": " {ifname} (No IP)",
|
||||
"format-disconnected": " Disconnected",
|
||||
"format-alt": " {signalStrength}%",
|
||||
"interval": 5
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "", // an empty format will hide the module
|
||||
"format-connected": " {num_connections}",
|
||||
"tooltip-format": " {device_alias}",
|
||||
"tooltip-format-connected": "{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": " {device_alias}"
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}",
|
||||
"format-muted": "婢",
|
||||
"on-click": "pavucontrol -t 3",
|
||||
"on-click-middle": "~/.config/hypr/scripts/volumecontrol.sh -o m",
|
||||
"on-scroll-up": "~/.config/hypr/scripts/volumecontrol.sh -o i",
|
||||
"on-scroll-down": "~/.config/hypr/scripts/volumecontrol.sh -o d",
|
||||
"tooltip-format": "{icon} {desc} // {volume}%",
|
||||
"scroll-step": 5,
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
}
|
||||
},
|
||||
|
||||
// "pulseaudio#microphone": {
|
||||
// "format": "{format_source}",
|
||||
// "format-source": "",
|
||||
// "format-source-muted": "",
|
||||
// "on-click": "pavucontrol -t 4",
|
||||
// "on-click-middle": "~/.config/hypr/scripts/volumecontrol.sh -i m",
|
||||
// "on-scroll-up": "~/.config/hypr/scripts/volumecontrol.sh -i i",
|
||||
// "on-scroll-down": "~/.config/hypr/scripts/volumecontrol.sh -i d",
|
||||
// "tooltip-format": "{format_source} {source_desc} // {source_volume}%",
|
||||
// "scroll-step": 5
|
||||
// },
|
||||
|
||||
|
||||
// modules for padding //
|
||||
|
||||
"custom/l_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/r_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/sl_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/sr_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/rl_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/rr_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/padd": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
}
|
||||
|
||||
}
|
||||
'';
|
||||
xdg.configFile."waybar/style.css".text = /* css */ ''
|
||||
* {
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: Material Design Icons, JetBrainsMono Nerd Font, Iosevka Nerd Font;
|
||||
font-size: 12px;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
border-radius: 0px;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-weight: bold;
|
||||
font-size: 11px;
|
||||
min-height: 10px;
|
||||
}
|
||||
|
||||
@import "themes/Catppuccin-Mocha.css";
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(26, 27, 38, 0.5);
|
||||
color: #ffffff;
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
#window {
|
||||
color: #64727d;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#temperature,
|
||||
#mpris,
|
||||
#cpu,
|
||||
#memory {
|
||||
color: #e5e5e5;
|
||||
border-radius: 6px;
|
||||
padding: 2px 10px;
|
||||
background-color: #252733;
|
||||
border-radius: 8px;
|
||||
font-size: 16px;
|
||||
|
||||
margin-left: 4px;
|
||||
margin-right: 4px;
|
||||
|
||||
margin-top: 8.5px;
|
||||
margin-bottom: 8.5px;
|
||||
}
|
||||
#temperature{
|
||||
color: #7a95c9;
|
||||
}
|
||||
#cpu {
|
||||
color: #fb958b;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: #a1c999;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: #252733;
|
||||
padding: 0em 2em;
|
||||
|
||||
font-size: 14px;
|
||||
|
||||
padding-left: 7.5px;
|
||||
padding-right: 7.5px;
|
||||
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
|
||||
margin-top: 7px;
|
||||
margin-bottom: 7px;
|
||||
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: #8fbcbb;
|
||||
border-radius: 0px 8px 8px 0px;
|
||||
padding-right: 2px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#battery.critical,
|
||||
#battery.warning,
|
||||
#battery.full,
|
||||
#battery.plugged {
|
||||
color: #8fbcbb;
|
||||
padding-left: 6px;
|
||||
padding-right: 12px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
font-size: 18px;
|
||||
padding-right: 13px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
#battery.full,
|
||||
#battery.plugged {
|
||||
font-size: 22.5px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: rgba(30, 34, 42, 0.5);
|
||||
color: #abb2bf;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: #ecd3a0;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: #fb958b;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: #8a909e;
|
||||
font-weight: bold;
|
||||
margin-top: 7px;
|
||||
margin-bottom: 7px;
|
||||
background: @bar-bg;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
font-family: Iosevka Nerd Font;
|
||||
border-radius: 15px;
|
||||
padding: 15px;
|
||||
background-color: #1f232b;
|
||||
background: @tool-bg;
|
||||
color: @tool-color;
|
||||
border-radius: 21px;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: @tool-border;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
font-family: Iosevka Nerd Font;
|
||||
padding: 5px;
|
||||
#workspaces button {
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
padding: 0px;
|
||||
border-radius: 9px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
color: @wb-color;
|
||||
animation: gradient_f 20s ease-in infinite;
|
||||
transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #1f232b;
|
||||
#workspaces button.active {
|
||||
background: @wb-act-bg;
|
||||
color: @wb-act-color;
|
||||
margin-left: 3px;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
margin-right: 3px;
|
||||
animation: gradient_f 20s ease-in infinite;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#custom-wallpaper {
|
||||
color: #dbd9d8;
|
||||
padding-right: 5;
|
||||
padding-left: 0;
|
||||
#workspaces button:hover {
|
||||
background: @wb-hvr-bg;
|
||||
color: @wb-hvr-color;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
animation: gradient_f 20s ease-in infinite;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
padding: 0px;
|
||||
border-radius: 9px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
color: @wb-color;
|
||||
animation: gradient_f 20s ease-in infinite;
|
||||
transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
background: @wb-act-bg;
|
||||
color: @wb-act-color;
|
||||
margin-left: 3px;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
margin-right: 3px;
|
||||
animation: gradient_f 20s ease-in infinite;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#taskbar button:hover {
|
||||
background: @wb-hvr-bg;
|
||||
color: @wb-hvr-color;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
animation: gradient_f 20s ease-in infinite;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#cpu,
|
||||
#memory,
|
||||
#battery,
|
||||
#clock,
|
||||
#workspaces,
|
||||
#window,
|
||||
#taskbar,
|
||||
#network,
|
||||
#bluetooth,
|
||||
#pulseaudio,
|
||||
#mpris,
|
||||
#custom-updates,
|
||||
#custom-wallchange,
|
||||
#custom-mode,
|
||||
#custom-cliphist,
|
||||
#custom-power,
|
||||
#custom-wbar,
|
||||
#custom-l_end,
|
||||
#custom-r_end,
|
||||
#custom-sl_end,
|
||||
#custom-sr_end,
|
||||
#custom-rl_end,
|
||||
#custom-rr_end,
|
||||
#tray {
|
||||
color: @main-color;
|
||||
background: @main-bg;
|
||||
opacity: 1;
|
||||
margin: 4px 0px 4px 0px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
#workspaces,
|
||||
#taskbar {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
#custom-r_end {
|
||||
border-radius: 0px 21px 21px 0px;
|
||||
margin-right: 9px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#custom-l_end {
|
||||
border-radius: 21px 0px 0px 21px;
|
||||
margin-left: 9px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#custom-sr_end {
|
||||
border-radius: 0px;
|
||||
margin-right: 9px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#custom-sl_end {
|
||||
border-radius: 0px;
|
||||
margin-left: 9px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#custom-rr_end {
|
||||
border-radius: 0px 7px 7px 0px;
|
||||
margin-right: 9px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#custom-rl_end {
|
||||
border-radius: 7px 0px 0px 7px;
|
||||
margin-left: 9px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
'';
|
||||
xdg.configFile."waybar/themes/Catppuccin-Mocha.css".text = ''
|
||||
@define-color bar-bg rgba(0, 0, 0, 0);
|
||||
|
||||
@define-color main-color #cdd6f4;
|
||||
@define-color main-bg #11111b;
|
||||
|
||||
@define-color tool-bg #1e1e2e;
|
||||
@define-color tool-color #cdd6f4;
|
||||
@define-color tool-border #11111b;
|
||||
|
||||
@define-color wb-color #cdd6f4;
|
||||
|
||||
@define-color wb-act-bg #a6adc8;
|
||||
@define-color wb-act-color #313244;
|
||||
|
||||
@define-color wb-hvr-bg #f5c2e7;
|
||||
@define-color wb-hvr-color #313244;
|
||||
'';
|
||||
}
|
||||
|
3
modules/bluetooth.nix
Normal file
3
modules/bluetooth.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
boot.loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 10;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
@ -1,5 +1,6 @@
|
||||
{
|
||||
imports = [
|
||||
./bluetooth.nix
|
||||
./boot.nix
|
||||
./fonts.nix
|
||||
./greetd.nix
|
||||
@ -11,7 +12,9 @@
|
||||
./packages.nix
|
||||
./pipewire.nix
|
||||
./security.nix
|
||||
./starship.nix
|
||||
./system.nix
|
||||
./systemd.nix
|
||||
./user.nix
|
||||
./timezone.nix
|
||||
./waybar.nix
|
||||
|
@ -1,7 +1,26 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland = {
|
||||
enable = true;
|
||||
hidpi = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
# hyprland-protocols
|
||||
# xdg-desktop-portal
|
||||
# xdg-desktop-portal-gtk
|
||||
|
||||
rofi-wayland # launcher
|
||||
wl-clipboard # wayland clipboard support
|
||||
swaylock-effects # screenlocker
|
||||
swayidle # idle daemon (screen time out)
|
||||
hyprpaper # Wallpaper daemon
|
||||
];
|
||||
|
||||
security.pam.services.swaylock = { };
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
|
@ -1,11 +1,20 @@
|
||||
{ config, pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
brightnessctl
|
||||
dig
|
||||
file
|
||||
git
|
||||
jq
|
||||
mediainfo
|
||||
neofetch
|
||||
swww
|
||||
networkmanagerapplet
|
||||
p7zip
|
||||
pqiv
|
||||
python3
|
||||
ripgrep # rg in home/hyprland.nix
|
||||
tree
|
||||
wget
|
||||
wlogout
|
||||
wl-clipboard
|
||||
];
|
||||
}
|
||||
|
74
modules/starship.nix
Normal file
74
modules/starship.nix
Normal file
@ -0,0 +1,74 @@
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
add_newline = false;
|
||||
|
||||
directory = {
|
||||
style = "purple";
|
||||
read_only = " ro";
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
style = "yellow";
|
||||
symbol = "";
|
||||
};
|
||||
|
||||
character = {
|
||||
success_symbol = "[>](red)[>](green)[>](blue)";
|
||||
error_symbol = "[>](cyan)[>](purple)[>](yellow)";
|
||||
vicmd_symbol = "[<](bold green)";
|
||||
};
|
||||
|
||||
line_break.disabled = true;
|
||||
|
||||
nodejs = {
|
||||
format = "with [$symbol($version )]($style)";
|
||||
symbol = "node ";
|
||||
version_format = "\${major}";
|
||||
disabled = true;
|
||||
};
|
||||
|
||||
git_commit.tag_symbol = " tag ";
|
||||
|
||||
git_status = {
|
||||
ahead = ">";
|
||||
behind = "<";
|
||||
diverged = "<>";
|
||||
renamed = "r";
|
||||
deleted = "x";
|
||||
};
|
||||
|
||||
aws.symbol = "aws ";
|
||||
cobol.symbol = "cobol ";
|
||||
conda.symbol = "conda ";
|
||||
crystal.symbol = "cr ";
|
||||
cmake.symbol = "cmake ";
|
||||
dart.symbol = "dart ";
|
||||
deno.symbol = "deno ";
|
||||
dotnet.symbol = ".NET ";
|
||||
docker_context.symbol = "docker ";
|
||||
elixir.symbol = "exs ";
|
||||
elm.symbol = "elm ";
|
||||
golang.symbol = "go ";
|
||||
hg_branch.symbol = "hg ";
|
||||
java.symbol = "java ";
|
||||
julia.symbol = "jl ";
|
||||
kotlin.symbol = "kt ";
|
||||
memory_usage.symbol = "memory ";
|
||||
nim.symbol = "nim ";
|
||||
nix_shell.symbol = "nix ";
|
||||
ocaml.symbol = "ml ";
|
||||
package.symbol = "pkg ";
|
||||
perl.symbol = "pl ";
|
||||
php.symbol = "php ";
|
||||
purescript.symbol = "purs ";
|
||||
python.symbol = "python ";
|
||||
ruby.symbol = "ruby ";
|
||||
rust.symbol = "rust ";
|
||||
scala.symbol = "scala ";
|
||||
swift.symbol = "swift ";
|
||||
};
|
||||
};
|
||||
}
|
6
modules/systemd.nix
Normal file
6
modules/systemd.nix
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
systemd = {
|
||||
extraConfig = "DefaultTimeoutStopSec = 10s";
|
||||
services.NetworkManager-wait-online.enable = false;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user