nix-home/home/kagami-pc-home.nix

160 lines
4.5 KiB
Nix
Raw Normal View History

2022-04-20 17:05:02 +00:00
{ pkgs, config, lib, ... }:
2021-10-09 02:52:28 +00:00
{
imports = [
2022-04-20 17:05:02 +00:00
# Common configuration
./common.nix
# osu!
./osu.nix
2021-10-09 02:52:28 +00:00
];
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "nki";
home.homeDirectory = "/home/nki";
# More packages
home.packages = (with pkgs; [
2022-04-20 17:05:02 +00:00
# CLI stuff
zip
# TeX
texlive.combined.scheme-full
2023-06-12 22:39:49 +00:00
inkscape # for TeX svg
2021-10-09 02:52:28 +00:00
2022-04-20 17:05:02 +00:00
# Java & sbt
openjdk11
sbt
2023-06-19 22:55:00 +00:00
# Manage tlmc
flacon
ttaenc
picard
2021-10-09 02:52:28 +00:00
]);
2022-04-20 17:05:02 +00:00
# Enable X11 configuration
2022-05-03 14:30:53 +00:00
linux.graphical.type = "wayland";
2022-04-27 18:08:55 +00:00
linux.graphical.wallpaper = ./images/wallpaper_1.png;
2022-05-03 14:30:53 +00:00
programs.my-sway.enable = true;
2022-07-14 02:15:30 +00:00
programs.my-sway.fontSize = 15.0;
2022-05-03 14:30:53 +00:00
programs.my-sway.enableLaptopBars = false;
2022-09-16 15:25:19 +00:00
programs.my-sway.enableMpd = true;
2022-05-03 14:30:53 +00:00
# Keyboard options
wayland.windowManager.sway.config.input."type:keyboard".xkb_layout = "jp";
2023-04-16 10:49:10 +00:00
wayland.windowManager.sway.config.input."type:pointer".accel_profile = "flat";
2022-05-03 14:30:53 +00:00
# 144hz adaptive refresh ON!
wayland.windowManager.sway.config.output =
let
scale = 1.5;
top_x = builtins.ceil (3840 / scale);
top_y = builtins.ceil (((2160 / scale) - 1080) / 2);
in
{
2023-04-29 12:53:06 +00:00
"AOC U28G2G6B PPYP2JA000013" = {
mode = "3840x2160@60Hz";
scale = toString scale;
adaptive_sync = "on";
# render_bit_depth = "10";
position = "0 0";
};
"AOC 24G2W1G4 ATNN21A005410" = {
mode = "1920x1080@144Hz";
adaptive_sync = "on";
position = "${toString top_x} ${toString top_y}";
};
"ViewSonic Corporation XG2402 SERIES V4K182501054" = {
mode = "1920x1080@144Hz";
adaptive_sync = "on";
};
};
2022-10-26 17:00:00 +00:00
nki.programs.kitty.enable = true;
2022-09-11 13:41:59 +00:00
nki.programs.kitty.fontSize = 14;
programs.my-sway.waybar.makeBars = barWith: [
# For primary
(barWith { extraSettings = { output = [ "AOC U28G2G6B PPYP2JA000013" ]; }; })
# For secondary, hide mpd
(barWith { showMedia = false; showConnectivity = false; extraSettings = { output = [ "AOC 24G2W1G4 ATNN21A005410" ]; }; })
];
2022-07-14 02:01:57 +00:00
# Yellow light!
services.wlsunset = {
enable = true;
2022-09-13 14:04:10 +00:00
# # Waterloo
# latitude = "43.3";
# longitude = "-80.3";
# Lausanne
latitude = "46.31";
longitude = "6.38";
2022-07-14 02:01:57 +00:00
};
2022-09-16 15:25:19 +00:00
# mpd stuff
2022-12-24 13:09:28 +00:00
services.mpd.musicDirectory = "${config.home.homeDirectory}/Music";
2022-09-16 15:25:19 +00:00
services.mpd-discord-rpc.enable = true;
2023-03-31 08:26:13 +00:00
services.mpd-mpris.enable = true;
2022-09-16 15:25:19 +00:00
# ncmpcpp
programs.ncmpcpp.enable = true;
2022-09-21 06:12:34 +00:00
programs.ncmpcpp.bindings = [
{ key = "j"; command = "scroll_down"; }
{ key = "k"; command = "scroll_up"; }
{ key = "J"; command = [ "select_item" "scroll_down" ]; }
{ key = "K"; command = [ "select_item" "scroll_up" ]; }
];
programs.ncmpcpp.settings = {
# General
colors_enabled = "yes";
enable_window_title = "yes";
main_window_color = "default";
execute_on_song_change = "${pkgs.libnotify}/bin/notify-send 'Now Playing' \"$(${pkgs.mpc_cli}/bin/mpc --format '%title% \\n%artist%' current)\"";
autocenter_mode = "yes";
centered_cursor = "yes";
user_interface = "classic";
# Progess Bar
progressbar_look = "";
progressbar_color = "white";
progressbar_elapsed_color = "green";
# UI Visibility
# header_visibility = "no";
# statusbar_visibility = "no";
# titles_visibility = "no";
startup_screen = "playlist";
#startup_slave_screen = "visualizer"
locked_screen_width_part = 50;
ask_for_locked_screen_width_part = "no";
# UI Appearance
now_playing_prefix = "$b$3";
now_playing_suffix = "$/b$9";
song_status_format = "$7%t";
song_list_format = "$8%a - %t$R $5%l";
song_columns_list_format = "(3f)[green]{} (60)[magenta]{t|f:Title} (1)[]{}";
song_library_format = "{{%a - %t} (%b)}|{%f}";
song_window_title_format = "Music";
# Visualizer
visualizer_in_stereo = "no";
visualizer_type = "ellipse";
visualizer_fps = "60";
visualizer_look = "";
visualizer_color = "33,39,63,75,81,99,117,153,189";
};
2022-09-16 15:25:19 +00:00
services.mpris-proxy.enable = true;
2022-07-14 02:01:57 +00:00
2022-05-03 14:30:53 +00:00
# linux.graphical.x11.hidpi = true;
# linux.graphical.x11.enablei3 = true;
2022-04-20 17:05:02 +00:00
2021-10-09 02:52:28 +00:00
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "21.05";
}