trantor changes

feat/kile-v2
Ricard Illa 2022-01-25 12:27:52 +01:00
parent 83bccd8c3f
commit d77f800e89
No known key found for this signature in database
GPG Key ID: F69A672B72E54902
22 changed files with 789 additions and 424 deletions

View File

@ -8,13 +8,19 @@ let
impermanence = builtins.fetchTarball { impermanence = builtins.fetchTarball {
url = "https://github.com/nix-community/impermanence/archive/master.tar.gz"; url = "https://github.com/nix-community/impermanence/archive/master.tar.gz";
}; };
home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/release-21.11.tar.gz";
};
in { in {
imports = [ # Include the results of the hardware scan. imports = [ # Include the results of the hardware scan.
./nixos/hardware-configuration/capibara.nix ./nixos/hardware-configuration/capibara.nix
./nixos/common.nix ./nixos/common.nix
"${home-manager}/nixos"
"${impermanence}/nixos.nix" "${impermanence}/nixos.nix"
]; ];
home-manager.users.rilla = import home/capibara.nix;
fileSystems = { fileSystems = {
"/" = { "/" = {
device = "tmpfs"; device = "tmpfs";
@ -132,19 +138,6 @@ in {
}; };
}; };
services.udev.extraRules = ''
# UDEV rules for Teensy USB devices
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="664", GROUP="plugdev"
'';
hardware.opengl.enable = true;
hardware.bluetooth.enable = true;
services.blueman.enable = true;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View File

@ -0,0 +1,6 @@
{ config, pkgs, ... }:
{
imports = [ ./nixos.nix ];
programs.alacritty.settings.font.size = 9;
}

View File

@ -9,8 +9,6 @@
x = 0; x = 0;
y = 0; y = 0;
}; };
# size = 7;
size = 9;
}; };
}; };
}; };

View File

@ -0,0 +1,6 @@
{ config, pkgs, ... }:
{
imports = [ ./nixos.nix ];
programs.alacritty.settings.font.size = 7.5;
}

View File

@ -22,7 +22,7 @@ in {
./barrier ./barrier
./browsers ./browsers
./dav ./dav
# ./desktop-xmonad # ./desktop-xmonad/capibara.nix
./fonts ./fonts
./git ./git
./gotify ./gotify

View File

@ -1,52 +0,0 @@
{ config, pkgs, ... }:
let
lvds_fingerprint = {
"LVDS-1" = "00ffffffffffff0030e4d8020000000000160103801c1078ea8855995b558f261d505400000001010101010101010101010101010101601d56d85000183030404700159c1000001b000000000000000000000000000000000000000000fe004c4720446973706c61790a2020000000fe004c503132355748322d534c42330059";
};
hdmi_fingerprint = {
"HDMI-2" = "00ffffffffffff0009d1e67845540000261d0103803c22782e4825a756529c270f5054a56b80d1c0b300a9c08180810081c001010101023a801871382d40582c450056502100001e000000ff004c394b30303333313031510a20000000fd00324c1e5311000a202020202020000000fc0042656e51204757323738300a200117020322f14f901f04130312021101140607151605230907078301000065030c001000023a801871382d40582c450056502100001f011d8018711c1620582c250056502100009f011d007251d01e206e28550056502100001e8c0ad08a20e02d10103e960056502100001800000000000000000000000000000000000000000047";
};
lvds_config = {
"LVDS-1" = {
enable = true;
crtc = 0;
mode = "1366x768";
position = "1920x0";
rate = "60.00";
};
};
hdmi_config = {
"HDMI-2" = {
enable = true;
primary = true;
crtc = 0;
mode = "1920x1080";
position = "0x0";
rate = "60.00";
};
};
in
{
programs.autorandr = {
enable = true;
hooks.postswitch = {
"change-background" = "/run/current-system/sw/bin/systemctl --user restart random-background.service";
"restart-xmonad" = "${pkgs.xmonad-with-packages}/bin/xmonad --restart";
};
profiles = {
"default" = {
fingerprint = lvds_fingerprint;
config = lvds_config;
};
"docked-open" = {
fingerprint = pkgs.lib.mkMerge [ hdmi_fingerprint lvds_fingerprint ];
config = pkgs.lib.mkMerge [ hdmi_config lvds_config ];
};
"docked-closed" = {
fingerprint = hdmi_fingerprint;
config = hdmi_config;
};
};
};
}

View File

@ -0,0 +1,48 @@
{ config, pkgs, ... }:
let
ext_monitor_fingerprint =
"00ffffffffffff0009d1e67845540000261d0103803c22782e4825a756529c270f5054a56b80d1c0b300a9c08180810081c001010101023a801871382d40582c450056502100001e000000ff004c394b30303333313031510a20000000fd00324c1e5311000a202020202020000000fc0042656e51204757323738300a200117020322f14f901f04130312021101140607151605230907078301000065030c001000023a801871382d40582c450056502100001f011d8018711c1620582c250056502100009f011d007251d01e206e28550056502100001e8c0ad08a20e02d10103e960056502100001800000000000000000000000000000000000000000047";
lvds_fingerprint =
"00ffffffffffff0030e4d8020000000000160103801c1078ea8855995b558f261d505400000001010101010101010101010101010101601d56d85000183030404700159c1000001b000000000000000000000000000000000000000000fe004c4720446973706c61790a2020000000fe004c503132355748322d534c42330059";
lvds_config = {
enable = true;
crtc = 0;
mode = "1366x768";
position = "0x0";
rate = "60.00";
};
hdmi_config = {
enable = true;
primary = true;
crtc = 0;
mode = "1920x1080";
position = "0x0";
rate = "60.00";
};
in {
imports = [ ./common.nix ];
programs.autorandr.profiles = {
default = {
fingerprint."LVDS-1" = lvds_fingerprint;
config."LVDS-1" = lvds_config;
};
docked = {
fingerprint = {
"HDMI-2" = ext_monitor_fingerprint;
"LVDS-1" = lvds_fingerprint;
};
config = {
"LVDS-1" = lvds_config // { position = "1920x0"; };
"HDMI-2" = hdmi_config;
};
};
docked_closed = {
fingerprint."HDMI-2" = ext_monitor_fingerprint;
config."HDMI-2" = hdmi_config;
};
};
}

View File

@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
programs.autorandr = {
enable = true;
hooks.postswitch = {
"change-background" =
"/run/current-system/sw/bin/systemctl --user restart random-background.service";
"restart-xmonad" = "${pkgs.xmonad-with-packages}/bin/xmonad --restart";
};
};
}

View File

@ -0,0 +1,67 @@
{ config, pkgs, ... }:
let
ext_monitor_fingerprint =
"00ffffffffffff0009d1e67845540000261d0103803c22782e4825a756529c270f5054a56b80d1c0b300a9c08180810081c001010101023a801871382d40582c450056502100001e000000ff004c394b30303333313031510a20000000fd00324c1e5311000a202020202020000000fc0042656e51204757323738300a200117020322f14f901f04130312021101140607151605230907078301000065030c001000023a801871382d40582c450056502100001f011d8018711c1620582c250056502100009f011d007251d01e206e28550056502100001e8c0ad08a20e02d10103e960056502100001800000000000000000000000000000000000000000047";
edp_fingerprint =
"00ffffffffffff0030e46e040000000000180104a52615780a0bb5a35955a0270c5054000000010101010101010101010101010101012e3680a070381f40302035007ed71000001b1f2480a070381f40302035007ed71000001b00000000000000000000000000000000000000000002000a30ff0a3c96191d4896000000003f";
edp_config = {
enable = true;
crtc = 0;
mode = "1368x768";
position = "1920x0";
rate = "60.00";
rotate = "left";
};
hdmi_config = {
enable = true;
primary = true;
crtc = 0;
mode = "1920x1080";
position = "0x0";
rate = "60.00";
};
in {
imports = [ ./common.nix ];
programs.autorandr.profiles = {
default = {
fingerprint = {
"HDMI-1-1" = ext_monitor_fingerprint;
"eDP-1-1" = edp_fingerprint;
};
config = {
"HDMI-1-1" = hdmi_config;
"eDP-1-1" = edp_config;
};
};
default_intel = {
fingerprint = {
"HDMI-1" = ext_monitor_fingerprint;
"eDP-1" = edp_fingerprint;
};
config = {
"HDMI-1" = hdmi_config;
"eDP-1" = edp_config;
};
};
nomonitor_intel = {
fingerprint."eDP-1" = edp_fingerprint;
config."eDP-1" = edp_config // { position = "0x0"; };
};
onlymonitor_intel = {
fingerprint = { "HDMI-1" = ext_monitor_fingerprint; };
config = { "HDMI-1" = hdmi_config; };
};
nomonitor_nvidia = {
fingerprint."eDP-1-1" = edp_fingerprint;
config."eDP-1-1" = edp_config // { position = "0x0"; };
};
onlymonitor_nvidia = {
fingerprint = { "HDMI-1-1" = ext_monitor_fingerprint; };
config = { "HDMI-1-1" = hdmi_config; };
};
};
}

View File

@ -0,0 +1,13 @@
{ config, pkgs, ... }:
let
desktopConfig = import ./desktop_config.nix {
config = config;
pkgs = pkgs;
};
in desktopConfig // {
imports = [ ./common.nix ./autorandr/capibara.nix ];
home.file.".xinitrc".text = ''
exec ${config.home.homeDirectory}/.xsession
'';
}

View File

@ -0,0 +1,51 @@
{ config, pkgs, ... }:
let
obtoxmd = pkgs.callPackage ./obtoxmd.nix { inherit config pkgs; };
in {
imports = [ ./rofi.nix ./misc.nix ];
home = {
keyboard = {
layout = "us";
options = [ "caps:escape" ];
variant = "altgr-intl";
};
packages = [ obtoxmd pkgs.openbox ];
file = {
".xmonad/icons/3cols.xpm".source = ./icons/3cols.xpm;
".xmonad/icons/float.xpm".source = ./icons/float.xpm;
".xmonad/icons/full.xpm".source = ./icons/full.xpm;
".xmonad/icons/grid.xpm".source = ./icons/grid.xpm;
".xmonad/icons/mtall.xpm".source = ./icons/mtall.xpm;
".xmonad/icons/tabs.xpm".source = ./icons/tabs.xpm;
".xmonad/icons/tall.xpm".source = ./icons/tall.xpm;
};
};
xsession = {
enable = true;
initExtra = ''
xset s off -dpms
${pkgs.autorandr}/bin/autorandr --change --default default
export WINIT_X11_SCALE_FACTOR=1.33
'';
};
services.stalonetray = {
enable = true;
config = {
icon_size = 20;
background = "#282828"; # todo
sticky = true;
geometry = "3x1-350+0";
icon_gravity = "E";
grow_gravity = "E";
};
};
programs.zsh.loginExtra = ''
[[ -z "''${DISPLAY}" ]] && [[ "$(tty)" = "/dev/tty1" ]] && \
exec "${pkgs.xorg.xinit}/bin/startx" 1> "${config.home.homeDirectory}/.xsession-errors" 2>&1
'';
}

View File

@ -1,294 +0,0 @@
{ config, pkgs, ... }:
let
gruvbox-dark = {
bg = "#282828";
bg1 = "#3c3836";
bg2 = "#504945";
fg = "#ebdbb2";
fg0 = "#fbf1c7";
fg3 = "#bdae93";
red = "#cc241d";
green = "#98971a";
yellow = "#d79921";
blue = "#458588";
purple = "#b16286";
aqua = "#689d6a";
gray = "#a89984";
gray2 = "#928374";
red-light = "#fb4934";
green-light = "#b8bb26";
yellow-light = "#fabd2f";
blue-light = "#83a598";
purple-light = "#d3869b";
aqua-light = "#8ec07c";
};
colors = {
fg = gruvbox-dark.fg;
selFg = gruvbox-dark.fg0;
bg = gruvbox-dark.bg;
sel = gruvbox-dark.blue;
inactive = gruvbox-dark.gray;
inactiveBorder = gruvbox-dark.bg2;
urgent = gruvbox-dark.red;
};
rofiTransparency = "96";
font = {
name = "Inter";
size = "10";
};
monoFont = {
name = "Hack";
size = "9";
};
hmonitors = pkgs.haskellPackages.callPackage ./hmonitors.nix {};
obtoxmd = pkgs.callPackage ./obtoxmd.nix { inherit config pkgs; };
hmonitorsQuery = "${hmonitors}/bin/hmonitors-query";
acpi = "${pkgs.acpi}/bin/acpi";
nmcli = "${pkgs.networkmanager}/bin/nmcli";
pamixer = "${pkgs.pamixer}/bin/pamixer";
in
{
imports = [ ./autorandr.nix ./rofi.nix ./misc.nix ];
home = {
keyboard = {
layout = "us";
options = ["caps:escape"];
variant = "altgr-intl";
};
packages = [hmonitors obtoxmd pkgs.acpi pkgs.pamixer pkgs.openbox];
file = {
".xinitrc".text = "exec ${config.home.homeDirectory}/.xsession";
".xmonad/icons/3cols.xpm".source = ./icons/3cols.xpm;
".xmonad/icons/float.xpm".source = ./icons/float.xpm;
".xmonad/icons/full.xpm".source = ./icons/full.xpm;
".xmonad/icons/grid.xpm".source = ./icons/grid.xpm;
".xmonad/icons/mtall.xpm".source = ./icons/mtall.xpm;
".xmonad/icons/tabs.xpm".source = ./icons/tabs.xpm;
".xmonad/icons/tall.xpm".source = ./icons/tall.xpm;
};
};
xsession = {
enable = true;
initExtra = ''
xset s off -dpms
${pkgs.autorandr}/bin/autorandr --change --default default
export WINIT_X11_SCALE_FACTOR=1.33
'';
windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
extraPackages = haskellPackages : [
haskellPackages.monad-logger
haskellPackages.dbus
];
config = ./xmonad/xmonad.hs;
libFiles = {
"Bindings.hs" = ./xmonad/lib/Bindings.hs;
"DefaultConfig.hs" = ./xmonad/lib/DefaultConfig.hs;
"Layouts.hs" = ./xmonad/lib/Layouts.hs;
"ManageHook.hs" = ./xmonad/lib/ManageHook.hs;
"Prompts.hs" = ./xmonad/lib/Prompts.hs;
"Utils.hs" = ./xmonad/lib/Utils.hs;
"Xmobar.hs" = ./xmonad/lib/Xmobar.hs;
"HostConfig.hs" = pkgs.writeText "HostConfig.hs" ''
module HostConfig
( fontConfig
, colorConfig
, FontConfig (FontConfig)
, fontSize
, fontName
, ColorConfig (ColorConfig)
, fgColor
, selFgColor
, bgColor
, selColor
, inactiveColor
, inactiveBorderColor
, urgentColor
) where
fontConfig :: FontConfig
fontConfig = FontConfig
{ fontSize = ${font.size}
, fontName = "${font.name}"
}
colorConfig :: ColorConfig
colorConfig = ColorConfig
{ fgColor = "${colors.fg}"
, selFgColor = "${colors.selFg}"
, bgColor = "${colors.bg}"
, selColor = "${colors.sel}"
, inactiveColor = "${colors.inactive}"
, inactiveBorderColor = "${colors.inactiveBorder}"
, urgentColor = "${colors.urgent}"
}
data FontConfig = FontConfig
{ fontSize :: Int
, fontName :: String
} deriving Show
data ColorConfig = ColorConfig
{ fgColor :: String
, selFgColor :: String
, bgColor :: String
, selColor :: String
, inactiveColor :: String
, inactiveBorderColor :: String
, urgentColor :: String
} deriving Show
'';
};
};
};
programs.xmobar = {
enable = true;
extraConfig = ''
Config
{ font = "xft:${font.name}:style=Regular:size=${font.size}"
, additionalFonts = ["xft:mplus Nerd Font:size=12"]
, bgColor = "${colors.bg}"
, fgColor = "${colors.fg}"
, alignSep = "}{"
, sepChar = "%"
, template = "%StdinReader% }{ %vol%%bat%%net%%date%"
, lowerOnStart = True
, hideOnStart = False
, persistent = True
, allDesktops = True
, position = TopW L 100
, commands =
[ Run Com "${hmonitorsQuery}" ["date" ] "date" 10
, Run Com "${hmonitorsQuery}" ["bat", "${acpi}" ] "bat" 10
, Run Com "${hmonitorsQuery}" ["net", "${nmcli}" ] "net" 20
, Run Com "${hmonitorsQuery}" ["vol", "${pamixer}"] "vol" 5
, Run StdinReader
]
}
'';
};
services.dunst = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
settings = {
global = {
font = "${font.name} ${font.size}";
format = ''<b>%s</b>\n%b'';
sort = "yes";
indicate_hidden = "yes";
alignment = "left";
bounce_freq = 0;
show_age_threshold = 60;
word_wrap = "yes";
ignore_newline = "no";
geometry = "300x5-30+20";
shrink = "yes";
transparency = 0;
idle_threshold = 10;
monitor = 0;
follow = "mouse";
sticky_history = "yes";
history_length = 20;
show_indicators = "yes";
line_height = 0;
separator_height = 2;
padding = 8;
horizontal_padding = 8;
separator_color = "frame";
startup_notification = false;
dmenu = "${pkgs.rofi}/bin/rofi -dmenu -p dunst:";
browser = "${pkgs.firefox}/bin/firefox";
icon_position = "left";
frame_width = 0;
frame_color = colors.inactive;
};
shortcuts = {
close = "ctrl+space";
close_all = "ctrl+shift+space";
context = "ctrl+shift+period";
};
urgency_low = {
background = "${colors.bg}${rofiTransparency}";
foreground = colors.fg;
timeout = 10;
};
urgency_normal = {
background = "${colors.sel}${rofiTransparency}";
foreground = colors.selFg;
timeout = 10;
};
urgency_critical = {
background = "${colors.urgent}${rofiTransparency}";
foreground = colors.selFg;
timeout = 10;
};
};
};
services.stalonetray = {
enable = true;
config = {
icon_size = 20;
background = colors.bg;
sticky = true;
geometry = "3x1-350+0";
icon_gravity = "E";
grow_gravity = "E";
};
};
xresources.properties = {
"Sxiv.foreground" = colors.fg;
"Sxiv.background" = colors.bg;
"Sxiv.font" = "${monoFont.name}:size=${monoFont.size}";
};
programs.zathura = {
enable = true;
options = {
font = "${monoFont.name} ${monoFont.size}";
default-bg = colors.bg;
default-fg = gruvbox-dark.bg1;
statusbar-fg = gruvbox-dark.fg3;
statusbar-bg = gruvbox-dark.bg2;
inputbar-bg = colors.bg;
inputbar-fg = colors.sel;
notification-bg = colors.bg;
notification-fg = colors.sel;
notification-error-bg = colors.bg;
notification-error-fg = gruvbox-dark.red-light;
notification-warning-bg = colors.bg;
notification-warning-fg = gruvbox-dark.red-light;
highlight-color = gruvbox-dark.yellow-light;
highlight-active-color = gruvbox-dark.blue-light;
completion-bg = gruvbox-dark.bg1;
completion-fg = gruvbox-dark.blue-light;
completion-highlight-fg = colors.selFg;
completion-highlight-bg = gruvbox-dark.blue-light;
recolor-lightcolor = colors.bg;
recolor-darkcolor = colors.fg;
recolor = false;
recolor-keephue = false;
};
};
programs.zsh.loginExtra = ''
[[ -z "''${DISPLAY}" ]] && [[ "$(tty)" = "/dev/tty1" ]] && \
exec "${pkgs.xorg.xinit}/bin/startx" 1> "${config.home.homeDirectory}/.xsession-errors" 2>&1
'';
}

View File

@ -0,0 +1,247 @@
{ config, pkgs, fontSize ? "10", monoFontSize ? "9", ... }:
let
gruvbox-dark = {
bg = "#282828";
bg1 = "#3c3836";
bg2 = "#504945";
fg = "#ebdbb2";
fg0 = "#fbf1c7";
fg3 = "#bdae93";
red = "#cc241d";
green = "#98971a";
yellow = "#d79921";
blue = "#458588";
purple = "#b16286";
aqua = "#689d6a";
gray = "#a89984";
gray2 = "#928374";
red-light = "#fb4934";
green-light = "#b8bb26";
yellow-light = "#fabd2f";
blue-light = "#83a598";
purple-light = "#d3869b";
aqua-light = "#8ec07c";
};
colors = {
fg = gruvbox-dark.fg;
selFg = gruvbox-dark.fg0;
bg = gruvbox-dark.bg;
sel = gruvbox-dark.blue;
inactive = gruvbox-dark.gray;
inactiveBorder = gruvbox-dark.bg2;
urgent = gruvbox-dark.red;
};
rofiTransparency = "96";
font = {
name = "Inter";
size = fontSize;
};
monoFont = {
name = "Hack";
size = monoFontSize;
};
hmonitors = pkgs.haskellPackages.callPackage ./hmonitors.nix { };
hmonitorsQuery = "${hmonitors}/bin/hmonitors-query";
acpi = "${pkgs.acpi}/bin/acpi";
nmcli = "${pkgs.networkmanager}/bin/nmcli";
pamixer = "${pkgs.pamixer}/bin/pamixer";
in {
xsession.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
extraPackages = haskellPackages: [
haskellPackages.monad-logger
haskellPackages.dbus
];
config = ./xmonad/xmonad.hs;
libFiles = {
"Bindings.hs" = ./xmonad/lib/Bindings.hs;
"DefaultConfig.hs" = ./xmonad/lib/DefaultConfig.hs;
"Layouts.hs" = ./xmonad/lib/Layouts.hs;
"ManageHook.hs" = ./xmonad/lib/ManageHook.hs;
"Prompts.hs" = ./xmonad/lib/Prompts.hs;
"Utils.hs" = ./xmonad/lib/Utils.hs;
"Xmobar.hs" = ./xmonad/lib/Xmobar.hs;
"HostConfig.hs" = pkgs.writeText "HostConfig.hs" ''
module HostConfig
( fontConfig
, colorConfig
, FontConfig (FontConfig)
, fontSize
, fontName
, ColorConfig (ColorConfig)
, fgColor
, selFgColor
, bgColor
, selColor
, inactiveColor
, inactiveBorderColor
, urgentColor
) where
fontConfig :: FontConfig
fontConfig = FontConfig
{ fontSize = ${font.size}
, fontName = "${font.name}"
}
colorConfig :: ColorConfig
colorConfig = ColorConfig
{ fgColor = "${colors.fg}"
, selFgColor = "${colors.selFg}"
, bgColor = "${colors.bg}"
, selColor = "${colors.sel}"
, inactiveColor = "${colors.inactive}"
, inactiveBorderColor = "${colors.inactiveBorder}"
, urgentColor = "${colors.urgent}"
}
data FontConfig = FontConfig
{ fontSize :: Int
, fontName :: String
} deriving Show
data ColorConfig = ColorConfig
{ fgColor :: String
, selFgColor :: String
, bgColor :: String
, selColor :: String
, inactiveColor :: String
, inactiveBorderColor :: String
, urgentColor :: String
} deriving Show
'';
};
};
programs.xmobar = {
enable = true;
extraConfig = ''
Config
{ font = "xft:${font.name}:style=Regular:size=${font.size}"
, additionalFonts = ["xft:mplus Nerd Font:size=12"]
, bgColor = "${colors.bg}"
, fgColor = "${colors.fg}"
, alignSep = "}{"
, sepChar = "%"
, template = "%StdinReader% }{ %vol%%bat%%net%%date%"
, lowerOnStart = True
, hideOnStart = False
, persistent = True
, allDesktops = True
, position = TopW L 100
, commands =
[ Run Com "${hmonitorsQuery}" ["date" ] "date" 10
, Run Com "${hmonitorsQuery}" ["bat", "${acpi}" ] "bat" 10
, Run Com "${hmonitorsQuery}" ["net", "${nmcli}" ] "net" 20
, Run Com "${hmonitorsQuery}" ["vol", "${pamixer}"] "vol" 5
, Run StdinReader
]
}
'';
};
services.dunst = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
settings = {
global = {
font = "${font.name} ${font.size}";
format = "<b>%s</b>\\n%b";
sort = "yes";
indicate_hidden = "yes";
alignment = "left";
bounce_freq = 0;
show_age_threshold = 60;
word_wrap = "yes";
ignore_newline = "no";
geometry = "300x5-30+20";
shrink = "yes";
transparency = 0;
idle_threshold = 10;
monitor = 0;
follow = "mouse";
sticky_history = "yes";
history_length = 20;
show_indicators = "yes";
line_height = 0;
separator_height = 2;
padding = 8;
horizontal_padding = 8;
separator_color = "frame";
startup_notification = false;
dmenu = "${pkgs.rofi}/bin/rofi -dmenu -p dunst:";
browser = "${pkgs.firefox}/bin/firefox";
icon_position = "left";
frame_width = 0;
frame_color = colors.inactive;
};
shortcuts = {
close = "ctrl+space";
close_all = "ctrl+shift+space";
context = "ctrl+shift+period";
};
urgency_low = {
background = "${colors.bg}${rofiTransparency}";
foreground = colors.fg;
timeout = 10;
};
urgency_normal = {
background = "${colors.sel}${rofiTransparency}";
foreground = colors.selFg;
timeout = 10;
};
urgency_critical = {
background = "${colors.urgent}${rofiTransparency}";
foreground = colors.selFg;
timeout = 10;
};
};
};
xresources.properties = {
"Sxiv.foreground" = colors.fg;
"Sxiv.background" = colors.bg;
"Sxiv.font" = "${monoFont.name}:size=${monoFont.size}";
};
programs.zathura = {
enable = true;
options = {
font = "${monoFont.name} ${monoFont.size}";
default-bg = colors.bg;
default-fg = gruvbox-dark.bg1;
statusbar-fg = gruvbox-dark.fg3;
statusbar-bg = gruvbox-dark.bg2;
inputbar-bg = colors.bg;
inputbar-fg = colors.sel;
notification-bg = colors.bg;
notification-fg = colors.sel;
notification-error-bg = colors.bg;
notification-error-fg = gruvbox-dark.red-light;
notification-warning-bg = colors.bg;
notification-warning-fg = gruvbox-dark.red-light;
highlight-color = gruvbox-dark.yellow-light;
highlight-active-color = gruvbox-dark.blue-light;
completion-bg = gruvbox-dark.bg1;
completion-fg = gruvbox-dark.blue-light;
completion-highlight-fg = colors.selFg;
completion-highlight-bg = gruvbox-dark.blue-light;
recolor-lightcolor = colors.bg;
recolor-darkcolor = colors.fg;
recolor = false;
recolor-keephue = false;
};
};
}

View File

@ -1,9 +1,7 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let let wallpapers = "${config.home.homeDirectory}/Images/wallpapers/enabled";
wallpapers = "${config.home.homeDirectory}/Images/wallpapers/enabled"; in {
in
{
services.picom = { services.picom = {
enable = true; enable = true;
blur = true; blur = true;
@ -28,9 +26,6 @@ in
Type = "simple"; Type = "simple";
ExecStart = "${pkgs.xbanish}/bin/xbanish"; ExecStart = "${pkgs.xbanish}/bin/xbanish";
}; };
Install = { Install = { WantedBy = [ "graphical-session.target" ]; };
WantedBy = [ "graphical-session.target" ];
}; };
};
} }

View File

@ -0,0 +1,27 @@
{ config, pkgs, ... }:
let
desktopConfig = import ./desktop_config.nix {
config = config;
pkgs = pkgs;
fontSize = "12";
monoFontSize = "13";
};
in desktopConfig // {
imports = [ ./common.nix ./autorandr/trantor.nix ];
home.file.".xinitrc".text = ''
${pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource modesetting NVIDIA-0
${pkgs.xorg.xrandr}/bin/xrandr --auto
exec ${config.home.homeDirectory}/.xsession
'';
services.picom = {
backend = "glx";
vSync = true;
extraOptions = ''
unredir-if-possible=false;
'';
};
}

33
home/theming/common.nix Normal file
View File

@ -0,0 +1,33 @@
{ config, pkgs, ... }:
{
home.packages = [
pkgs.gruvbox-dark-gtk
pkgs.papirus-icon-theme
pkgs.lxappearance
pkgs.qt5ct
pkgs.gtk-engine-murrine
pkgs.gtk_engines
];
gtk = {
enable = true;
font = {
name = "Inter";
package = pkgs.inter;
};
theme = {
name = "gruvbox-dark";
package = pkgs.gruvbox-dark-gtk;
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme = "gtk";
};
}

View File

@ -1,34 +1,6 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
home.packages = [ imports = [ ./common.nix ];
pkgs.gruvbox-dark-gtk gtk.font.size = 10;
pkgs.papirus-icon-theme
pkgs.lxappearance
pkgs.qt5ct
pkgs.gtk-engine-murrine
pkgs.gtk_engines
];
gtk = {
enable = true;
font = {
name = "Inter";
size = 10;
package = pkgs.inter;
};
theme = {
name = "gruvbox-dark";
package = pkgs.gruvbox-dark-gtk;
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme = "gtk";
};
} }

6
home/theming/trantor.nix Normal file
View File

@ -0,0 +1,6 @@
{ config, pkgs, ... }:
{
imports = [ ./common.nix ];
gtk.font.size = 12;
}

160
home/trantor.nix Normal file
View File

@ -0,0 +1,160 @@
{ config, pkgs, ... }:
let
impermanence = builtins.fetchTarball {
url = "https://github.com/nix-community/impermanence/archive/master.tar.gz";
};
in {
# Let Home Manager install and manage itself.
# programs.home-manager.enable = true;
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "rilla";
home.homeDirectory = "/home/rilla";
imports = [
"${impermanence}/home-manager.nix"
# ./desktop-sway
./alacritty/trantor.nix
./arduino
./barrier
./browsers
./dav
./desktop-xmonad/trantor.nix
./fonts
./git
./gotify
./gpg
./idasen
./mail
./minidisc
./mpd
./msg
./music
./neovim
./pass
./rss
./snapcast
./sound
./ssh
./theming/trantor.nix
./tmux
./vitetris
./wallets
./zsh
];
home.sessionVariables = {
EDITOR = "${pkgs.neovim}/bin/nvim";
VISUAL = "${pkgs.neovim}/bin/nvim";
BROWSER = "${pkgs.firefox}/bin/firefox";
# OPENER = "todo"; # todo
TERMINAL = "${pkgs.alacritty}/bin/alacritty";
CM_LAUNCHER = "rofi"; # for clipmenu
LEDGER_FILE = "${config.home.homeDirectory}/finance/2021.journal";
QT_QPA_PLATFORMTHEME = "qt5ct";
};
home.packages = with pkgs; [
R
acpi
android-tools
ansible
bind.dnsutils
calibre
docker-compose
file
gimp
gnumake
htop
jq
killall
libnotify
libreoffice
lxqt.pcmanfm-qt
mosh
mpv
neofetch
networkmanagerapplet
nextcloud-client
pandoc
pv
ripgrep
signify
sxiv
telnet
virt-manager
wget
];
services.syncthing.enable = true;
services.kdeconnect.enable = true;
programs.bat = {
enable = true;
config = { theme = "gruvbox-dark"; };
};
programs.fzf = {
enable = true;
enableZshIntegration = true;
# defaultOptions = [
# "--preview --preview 'bat --color=always --style=header,grid --line-range :300 {}'"
# ];
tmux.enableShellIntegration = true;
};
services.gnome-keyring = {
enable = true;
components = [ "secrets" ];
};
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
xdg.mimeApps = {
enable = true;
defaultApplications = {
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = " firefox.desktop";
"x-scheme-handler/chrome" = " firefox.desktop";
"text/html" = "firefox.desktop";
"application/x-extension-htm" = "firefox.desktop";
"application/x-extension-html" = "firefox.desktop";
"application/x-extension-shtml" = "firefox.desktop";
"application/xhtml+xml" = "firefox.desktop";
"application/x-extension-xhtml" = "firefox.desktop";
"application/x-extension-xht" = "firefox.desktop";
"x-scheme-handler/tg" = "userapp-Telegram Desktop.desktop";
};
associations.added = {
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = " firefox.desktop";
"x-scheme-handler/chrome" = " firefox.desktop";
"text/html" = "firefox.desktop";
"application/x-extension-htm" = "firefox.desktop";
"application/x-extension-html" = "firefox.desktop";
"application/x-extension-shtml" = "firefox.desktop";
"application/xhtml+xml" = "firefox.desktop";
"application/x-extension-xhtml" = "firefox.desktop";
"application/x-extension-xht" = "firefox.desktop";
"x-scheme-handler/tg" = "userapp-Telegram Desktop.desktop";
};
};
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
"autoconnect" = [ "qemu:///system" ];
"uris" = [ "qemu:///system" ];
};
};
home.stateVersion = "21.11";
}

View File

@ -1,12 +1,6 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let {
home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/release-21.11.tar.gz";
};
in {
imports = [ "${home-manager}/nixos" ];
nixpkgs.config = { nixpkgs.config = {
packageOverrides = pkgs: { packageOverrides = pkgs: {
nur = import (builtins.fetchTarball nur = import (builtins.fetchTarball
@ -76,6 +70,7 @@ in {
Option "AccelerationProfile" "0" Option "AccelerationProfile" "0"
Option "AccelerationScheme" "predictable" Option "AccelerationScheme" "predictable"
Option "AccelerationNumerator" "3" Option "AccelerationNumerator" "3"
Option "AccelSpeed" "-0.5"
EndSection EndSection
''; '';
}; };
@ -170,8 +165,6 @@ in {
}; };
}; };
home-manager.users.rilla = import ../home;
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;
@ -200,6 +193,19 @@ in {
}; };
programs.dconf.enable = true; programs.dconf.enable = true;
services.udev.extraRules = ''
# UDEV rules for Teensy USB devices
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="664", GROUP="plugdev"
'';
hardware.opengl.enable = true;
hardware.bluetooth.enable = true;
services.blueman.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# #

View File

@ -0,0 +1,18 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -4,12 +4,24 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ let
impermanence = builtins.fetchTarball {
url = "https://github.com/nix-community/impermanence/archive/master.tar.gz";
};
home-manager = builtins.fetchTarball {
url =
"https://github.com/nix-community/home-manager/archive/release-21.11.tar.gz";
};
in {
imports = [ # Include the results of the hardware scan. imports = [ # Include the results of the hardware scan.
./hardware-configuration.nix ./nixos/hardware-configuration/trantor.nix
./common.nix ./nixos/common.nix
"${home-manager}/nixos"
"${impermanence}/nixos.nix"
]; ];
home-manager.users.rilla = import home/trantor.nix;
fileSystems = { fileSystems = {
"/" = { "/" = {
device = "/dev/mapper/cryptroot"; device = "/dev/mapper/cryptroot";
@ -30,15 +42,20 @@
}; };
"/home" = { "/home" = {
device = "/dev/mapper/cryptroot"; device = "/dev/mapper/crypthome";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=home" "compress-force=zstd" ]; options = [ "subvol=home" "compress-force=zstd" ];
}; };
"/boot" = { "/boot/efi" = {
device = "/dev/mapper/cryptroot"; device = "/dev/disk/by-uuid/0BFA-9A66";
fsType = "vfat";
};
"/home/rilla/Maildir" = {
device = "/dev/mapper/crypthome";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=boot" "compress-force=zstd" ]; options = [ "subvol=mail" "compress-force=zstd" ];
}; };
"/swap" = { "/swap" = {
@ -47,15 +64,40 @@
options = [ "subvol=swap" ]; options = [ "subvol=swap" ];
}; };
"/boot/efi" = { # "/home/rilla/music" = {
device = "/dev/disk/by-uuid/0BFA-9A66"; # device = "narwhal:/music";
fsType = "vfat"; # fsType = "nfs";
}; # options = [
# "nfsvers=4"
# "noauto"
# "x-systemd.automount"
# "x-systemd.idle-timeout=1min"
# ];
# };
# "/home/rilla/calibre" = {
# device = "narwhal:/calibre";
# fsType = "nfs";
# options = [
# "nfsvers=4"
# "noauto"
# "x-systemd.automount"
# "x-systemd.idle-timeout=1min"
# ];
# };
}; };
swapDevices = [{ device = "/swap/swapfile"; }]; swapDevices = [{ device = "/swap/swapfile"; }];
environment.variables = {
NIXOS_CONFIG = "/home/rilla/configs/nix-config/trantor.nix";
WINT_HDPI_FACTOR = "1";
};
networking.networkmanager.wifi.macAddress = "80:FA:5B:41:12:0F";
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
programs.steam.enable = true;
boot = { boot = {
loader = { loader = {
@ -68,8 +110,8 @@
enable = true; enable = true;
version = 2; version = 2;
device = "nodev"; device = "nodev";
efiSupport = true;
enableCryptodisk = true; enableCryptodisk = true;
efiSupport = true;
}; };
}; };
initrd = { initrd = {
@ -98,6 +140,17 @@
}; };
}; };
services.xserver = { videoDrivers = [ "nvidia" ]; };
hardware.nvidia = {
nvidiaPersistenced = true;
modesetting.enable = true;
prime = {
sync.enable = true;
nvidiaBusId = "PCI:1:0:0";
intelBusId = "PCI:0:2:0";
};
};
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave