forked from extern/nix-config
0038165390
Note that the home manager module isn't used here since the resulting config.fish made fish noticeably slower on startup.
376 lines
11 KiB
Nix
376 lines
11 KiB
Nix
{ config, lib, nixpkgs, home-manager, hyprland, ... }: {
|
|
imports = [ home-manager.nixosModule ];
|
|
home-manager.users.user = { pkgs, ... }: {
|
|
xdg = { userDirs = { enable = true; }; };
|
|
home.file.".icons/default/index.theme".text = ''
|
|
[icon theme]
|
|
Inherits=phinger-cursors
|
|
'';
|
|
xresources.properties = {
|
|
"Xft.hinting" = true;
|
|
"Xft.antialias" = true;
|
|
"Xft.autohint" = false;
|
|
"Xft.lcdfilter" = "lcddefault";
|
|
"Xft.hintstyle" = "hintfull";
|
|
"Xft.rgba" = "rgb";
|
|
};
|
|
xdg.configFile."xfce4/helpers.rc".text = ''
|
|
TerminalEmulator=kitty
|
|
TerminalEmulatorDismissed=true
|
|
'';
|
|
xdg.configFile."mozc/ibus_config.textproto".text = ''
|
|
engines {
|
|
name : "mozc-jp"
|
|
longname : "Mozc"
|
|
layout : "default"
|
|
layout_variant : ""
|
|
layout_option : ""
|
|
rank : 80
|
|
}
|
|
active_on_launch: True
|
|
'';
|
|
xdg.configFile."ranger/rc.conf".text = ''
|
|
set line_numbers absolute
|
|
set padding_right false
|
|
set vcs_aware true
|
|
set show_hidden true
|
|
set confirm_on_delete always
|
|
set save_console_history false
|
|
set mouse_enabled false
|
|
set tilde_in_titlebar true
|
|
|
|
alias r rename
|
|
alias d delete
|
|
|
|
map DD shell trash %s
|
|
|
|
set use_preview_script true
|
|
set preview_files true
|
|
set preview_images true
|
|
set preview_images_method kitty
|
|
'';
|
|
xdg.configFile."fish/config.fish".text = ''
|
|
set -U fish_greeting ""
|
|
|
|
export PATH="$HOME/.deno/bin:$HOME/.cargo/bin:$HOME/.yarn/bin:$HOME/.local/bin:$HOME/.go/bin:$PATH"
|
|
export GOPATH="$HOME/.go"
|
|
export SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent.socket"
|
|
export TERMCMD="kitty --single-instance"
|
|
|
|
# Required to make gpg-agent work in cases like git commit
|
|
export GPG_TTY=(tty)
|
|
|
|
# Add color to man pages
|
|
set -x -U LESS_TERMCAP_md (printf "\e[01;31m")
|
|
set -x -U LESS_TERMCAP_me (printf "\e[0m")
|
|
set -x -U LESS_TERMCAP_se (printf "\e[0m")
|
|
set -x -U LESS_TERMCAP_so (printf "\e[01;44;30m")
|
|
set -x -U LESS_TERMCAP_ue (printf "\e[0m")
|
|
set -x -U LESS_TERMCAP_us (printf "\e[01;32m")
|
|
|
|
# Always use the default keybindings in fish
|
|
fish_default_key_bindings
|
|
|
|
# Convert unnecessarily large wav files to flac
|
|
function wav2flac
|
|
set ORIGINAL_SIZE (du -hs | cut -f1)
|
|
|
|
fd -e wav -x ffmpeg -i "{}" -loglevel quiet -stats "{.}.flac"
|
|
fd -e wav -X trash
|
|
|
|
set NEW_SIZE (du -hs | cut -f1)
|
|
|
|
echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE"
|
|
end
|
|
|
|
# Convert wav/flac to opus
|
|
function opus
|
|
set ORIGINAL_SIZE (du -hs | cut -f1)
|
|
|
|
fd -e wav -e flac -x ffmpeg -i "{}" -c:a libopus -b:a 128K -loglevel quiet -stats "{.}.opus"
|
|
fd -e wav -e flac -X rm -I
|
|
|
|
set NEW_SIZE (du -hs | cut -f1)
|
|
|
|
echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE"
|
|
end
|
|
|
|
# Always use kitty ssh since it's our default terminal
|
|
if string match -qe -- "/dev/pts/" (tty)
|
|
alias ssh="kitty +kitten ssh"
|
|
end
|
|
|
|
# if status is-login
|
|
# if test -z "$DISPLAY" -a "$XDG_VTNR" = 1
|
|
# exec Hyprland
|
|
# end
|
|
# end
|
|
'';
|
|
gtk = {
|
|
enable = true;
|
|
cursorTheme = {
|
|
package = pkgs.phinger-cursors;
|
|
name = "phinger-cursors";
|
|
};
|
|
gtk3.extraConfig = {
|
|
gtk-decoration-layout = "menu:";
|
|
gtk-xft-antialias = 1;
|
|
gtk-xft-hinting = 1;
|
|
gtk-xft-hintstyle = "hintfull";
|
|
gtk-xft-rgba = "rgb";
|
|
gtk-recent-files-enabled = false;
|
|
};
|
|
iconTheme = {
|
|
package = pkgs.fluent-icon-theme;
|
|
name = "Fluent";
|
|
};
|
|
};
|
|
programs.kitty = {
|
|
enable = true;
|
|
settings = {
|
|
enable_audio_bell = false;
|
|
allow_remote_control = true;
|
|
dynamic_background_opacity = true;
|
|
background_opacity = "0.95";
|
|
close_on_child_death = true;
|
|
cursor_blink_interval = 0;
|
|
wayland_titlebar_color = "background";
|
|
listen_on = "unix:/tmp/kitty";
|
|
open_url_with = "librewolf";
|
|
window_padding_width = 5;
|
|
tab_bar_margin_width = 5;
|
|
};
|
|
};
|
|
xdg.configFile."kitty/diff.conf".text = ''
|
|
map d scroll_to next-page
|
|
map u scroll_to prev-page
|
|
map g scroll_to start
|
|
map G scroll_to end
|
|
'';
|
|
programs.bat = { enable = true; };
|
|
programs.swaylock = {
|
|
package = pkgs."swaylock-effects";
|
|
settings = {
|
|
show-keyboard-layout = true;
|
|
daemonize = true;
|
|
effect-blur = "5x2";
|
|
clock = true;
|
|
indicator = true;
|
|
font-size = 25;
|
|
indicator-radius = 85;
|
|
indicator-thickness = 16;
|
|
screenshots = true;
|
|
fade-in = 1;
|
|
};
|
|
};
|
|
services.dunst = {
|
|
enable = true;
|
|
settings = {
|
|
global = {
|
|
geometry = "1870x5-25+45";
|
|
width = 350;
|
|
separator_height = 5;
|
|
padding = 24;
|
|
horizontal_padding = 24;
|
|
frame_width = 3;
|
|
idle_threshold = 120;
|
|
alignment = "center";
|
|
word_wrap = "yes";
|
|
transparency = 5;
|
|
format = "<b>%s</b>: %b";
|
|
markup = "full";
|
|
min_icon_size = 128;
|
|
max_icon_size = 128;
|
|
};
|
|
};
|
|
};
|
|
programs.waybar = {
|
|
enable = true;
|
|
package = hyprland.packages."x86_64-linux".waybar-hyprland;
|
|
settings = {
|
|
mainBar = {
|
|
layer = "bottom";
|
|
position = "top";
|
|
height = 30;
|
|
modules-left = [ "hyprland/window" ];
|
|
modules-center = [ "wlr/workspaces" ];
|
|
modules-right =
|
|
[ "tray" "wireplumber" "backlight" "battery" "clock" ];
|
|
};
|
|
};
|
|
};
|
|
programs.zathura = {
|
|
enable = true;
|
|
options = {
|
|
guioptions = "v";
|
|
adjust-open = "width";
|
|
statusbar-basename = true;
|
|
render-loading = false;
|
|
scroll-step = 120;
|
|
};
|
|
};
|
|
programs.feh = {
|
|
enable = true;
|
|
keybindings = {
|
|
toggle_actions = null;
|
|
toggle_aliasing = null;
|
|
toggle_caption = null;
|
|
toggle_filenames = "d";
|
|
toggle_exif = null;
|
|
save_filelist = null;
|
|
toggle_fixed_geometry = "g";
|
|
toggle_pause = "h";
|
|
toggle_info = null;
|
|
toggle_keep_vp = null;
|
|
toggle_menu = null;
|
|
next_img = [ "k" "Right" ];
|
|
toggle_pointer = "a";
|
|
prev_img = [ "j" "Left" ];
|
|
quit = "q";
|
|
reload_image = null;
|
|
save_image = null;
|
|
toggle_fullscreen = "f";
|
|
size_to_image = "w";
|
|
close = null;
|
|
jump_random = "z";
|
|
prev_dir = null;
|
|
next_dir = null;
|
|
orient_3 = null;
|
|
orient_1 = null;
|
|
flip = null;
|
|
mirror = null;
|
|
action_0 = null;
|
|
action_1 = null;
|
|
action_2 = null;
|
|
action_3 = null;
|
|
action_4 = null;
|
|
action_5 = null;
|
|
action_6 = null;
|
|
action_7 = null;
|
|
action_8 = null;
|
|
action_9 = null;
|
|
jump_first = "J";
|
|
jump_last = "K";
|
|
jump_fwd = "H";
|
|
jump_back = "L";
|
|
reload_plus = null;
|
|
reload_minus = null;
|
|
remove = null;
|
|
delete = null;
|
|
scroll_left = "b";
|
|
scroll_right = "n";
|
|
scroll_up = [ "u" "Up" ];
|
|
scroll_down = [ "d" "Down" ];
|
|
scroll_left_page = null;
|
|
scroll_right_page = null;
|
|
scroll_up_page = null;
|
|
scroll_down_page = null;
|
|
render = null;
|
|
zoom_in = "h";
|
|
zoom_out = "l";
|
|
zoom_default = "o";
|
|
zoom_fit = null;
|
|
zoom_fill = "p";
|
|
menu_close = null;
|
|
menu_up = null;
|
|
menu_down = null;
|
|
menu_parent = null;
|
|
menu_child = null;
|
|
menu_select = null;
|
|
toggle_auto_zoom = "m";
|
|
};
|
|
};
|
|
services.mpd = {
|
|
enable = true;
|
|
extraConfig = ''
|
|
auto_update "yes"
|
|
'';
|
|
};
|
|
programs.ncmpcpp = {
|
|
enable = true;
|
|
bindings = [
|
|
{ key = "mouse"; command = "dummy"; }
|
|
{ key = "h"; command = ["previous_column" "jump_to_parent_directory"]; }
|
|
{ key = "j"; command = "scroll_down"; }
|
|
{ key = "k"; command = "scroll_up"; }
|
|
{ key = "l"; command = [ "next_column" "enter_directory" "play_item"]; }
|
|
{ key = "H"; command = [ "select_item" "scroll_down"]; }
|
|
{ key = "J"; command = ["move_sort_order_down" "move_selected_items_down"]; }
|
|
{ key = "K"; command = ["move_sort_order_up" "move_selected_items_up"]; }
|
|
{ key = "L"; command = [ "select_item" "scroll_up"]; }
|
|
{ key = "'"; command = "remove_selection"; }
|
|
{ key = "ctrl-u"; command = "page_up"; }
|
|
{ key = "ctrl-d"; command = "page_down"; }
|
|
{ key = "u"; command = "page_up"; }
|
|
{ key = "d"; command = "page_down"; }
|
|
{ key = "n"; command = "next_found_item"; }
|
|
{ key = "N"; command = "previous_found_item"; }
|
|
{ key = "t"; command = "next_screen"; }
|
|
{ key = "g"; command = "move_home"; }
|
|
{ key = "G"; command = "move_end"; }
|
|
{ key = "w"; command = "next"; }
|
|
{ key = "b"; command = "previous"; }
|
|
{ key = ";"; command = "seek_forward"; }
|
|
{ key = ","; command = "seek_backward"; }
|
|
{ key = "f"; command = "apply_filter"; }
|
|
{ key = "i"; command = "select_item"; }
|
|
{ key = "x"; command = [ "delete_playlist_items" "delete_browser_items" "delete_stored_playlist" ]; }
|
|
{ key = "U"; command = "update_database"; }
|
|
{ key = "m"; command = "add_random_items"; }
|
|
];
|
|
settings = {
|
|
ncmpcpp_directory = "~/.config/ncmpcpp";
|
|
user_interface = "alternative";
|
|
autocenter_mode = "yes";
|
|
allow_for_physical_item_deletion = "no";
|
|
mouse_support = "no";
|
|
execute_on_song_change = "~/.config/mpd/mpdnotify";
|
|
mpd_crossfade_time = 3;
|
|
};
|
|
};
|
|
programs.lf = {
|
|
enable = true;
|
|
};
|
|
services.gpg-agent = {
|
|
enable = true;
|
|
pinentryFlavor = "curses";
|
|
defaultCacheTtl = 43200;
|
|
maxCacheTtl = 43200;
|
|
};
|
|
programs.rofi = {
|
|
enable = true;
|
|
package = pkgs.rofi-wayland;
|
|
cycle = false;
|
|
extraConfig = {
|
|
modi = "drun,filebrowser";
|
|
font = "Noto Sans CJK JP 12";
|
|
show-icons = true;
|
|
bw = 0;
|
|
display-drun = "";
|
|
display-window = "";
|
|
display-combi = "";
|
|
icon-theme = "Papirus";
|
|
terminal = "kitty";
|
|
drun-match-fields = "name";
|
|
drun-display-format = "{name}";
|
|
me-select-entry = "";
|
|
me-accept-entry = "MousePrimary";
|
|
};
|
|
};
|
|
programs.gpg = {
|
|
enable = true;
|
|
# homedir = "${config.xdg.dataHome}/gnupg"
|
|
settings = {
|
|
personal-digest-preferences = "SHA512";
|
|
cert-digest-algo = "SHA512";
|
|
cipher-algo = "AES256";
|
|
default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
|
|
personal-cipher-preferences = "TWOFISH CAMELLIA256 AES 3DES";
|
|
throw-keyids = true;
|
|
keyid-format = "0xlong";
|
|
with-fingerprint = true;
|
|
};
|
|
};
|
|
};
|
|
}
|