mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-23 16:29:42 -04:00
added i3 module, switched workstation back to nvidia
This commit is contained in:
parent
2985462eee
commit
de564231e7
7 changed files with 454 additions and 7 deletions
|
|
@ -15,7 +15,7 @@
|
||||||
"virtio"
|
"virtio"
|
||||||
"vfio-pci"
|
"vfio-pci"
|
||||||
"coretemp"
|
"coretemp"
|
||||||
"amdgpu"
|
|
||||||
"ipmi_devintf"
|
"ipmi_devintf"
|
||||||
"ipmi_si"
|
"ipmi_si"
|
||||||
];
|
];
|
||||||
|
|
@ -40,7 +40,6 @@
|
||||||
libGL
|
libGL
|
||||||
|
|
||||||
glxinfo
|
glxinfo
|
||||||
clinfo
|
|
||||||
];
|
];
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
|
|
@ -77,12 +76,23 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
amdgpu = {
|
graphics = {
|
||||||
initrd.enable = true;
|
enable = true;
|
||||||
opencl.enable = true;
|
enable32Bit = true;
|
||||||
|
};
|
||||||
|
nvidia = {
|
||||||
|
open = false;
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
modesetting.enable = true;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
gui = {
|
gui = {
|
||||||
wm.sway.enable = true;
|
wm.i3.enable = true;
|
||||||
|
|
||||||
browser = {
|
browser = {
|
||||||
chromium.enable = true;
|
chromium.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, home-manager, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
{
|
{
|
||||||
|
|
@ -86,7 +86,15 @@ with lib;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.i3lock = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.i3lock-fancy;
|
||||||
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
xserver.enable = true;
|
||||||
|
displayManager.ly.enable = true;
|
||||||
|
|
||||||
teamviewer.enable = true;
|
teamviewer.enable = true;
|
||||||
|
|
||||||
timesyncd = lib.mkDefault {
|
timesyncd = lib.mkDefault {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
configuration {
|
||||||
|
font: "SF Pro Rounded 10";
|
||||||
|
show-icons: true;
|
||||||
|
kb-cancel: "Escape,Alt+F1";
|
||||||
|
}
|
||||||
|
|
||||||
|
@theme "~/.config/rofi/material-ocean.rasi"
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
* {
|
||||||
|
background: #0f111a;
|
||||||
|
foreground: #f1f1f1;
|
||||||
|
selected: #ff4151;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
transparency: "real";
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
enabled: true;
|
||||||
|
padding: 4px 4px 6px 6px;
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox-prompt-colon {
|
||||||
|
expand: false;
|
||||||
|
background-color: @background;
|
||||||
|
padding: 4px 0px 0px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
children: [ textbox-prompt-colon, entry ];
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
expand: false;
|
||||||
|
border: 0px 0px 0px 0px;
|
||||||
|
border-radius: 0px;
|
||||||
|
border-color: @selected;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding: 0px 0px 4px 0px;
|
||||||
|
position: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry {
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
placeholder-color: @foreground;
|
||||||
|
expand: true;
|
||||||
|
horizontal-align: 0;
|
||||||
|
blink: true;
|
||||||
|
padding: 4px 0px 0px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
case-indicator {
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
background-color: @background;
|
||||||
|
columns: 1;
|
||||||
|
spacing: 5px;
|
||||||
|
cycle: true;
|
||||||
|
dynamic: true;
|
||||||
|
layout: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
background-color: @background;
|
||||||
|
children: [ inputbar, listview ];
|
||||||
|
spacing: 5px;
|
||||||
|
padding: 5px 5px 5px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
orientation: horizontal;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 6px 6px 6px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-text, element-icon {
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-icon {
|
||||||
|
size: 18px;
|
||||||
|
border: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected {
|
||||||
|
background-color: @selected;
|
||||||
|
text-color: @background;
|
||||||
|
border: 0px;
|
||||||
|
border-radius: 0px;
|
||||||
|
border-color: @selected;
|
||||||
|
}
|
||||||
183
src/user/modules/gui/wm/i3/config/rofi/default.nix
Normal file
183
src/user/modules/gui/wm/i3/config/rofi/default.nix
Normal file
|
|
@ -0,0 +1,183 @@
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (config.lib.formats.rasi) mkLiteral;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.rofi;
|
||||||
|
location = "center";
|
||||||
|
terminal = "\${pkgs.alacritty}/bin/alacritty";
|
||||||
|
plugins = with pkgs; [
|
||||||
|
rofi-emoji
|
||||||
|
];
|
||||||
|
|
||||||
|
#theme = {
|
||||||
|
# "*" = {
|
||||||
|
# nord0 = mkLiteral "#2e3440";
|
||||||
|
# nord1 = mkLiteral "#3b4252";
|
||||||
|
# nord2 = mkLiteral "#434c5e";
|
||||||
|
# nord3 = mkLiteral "#4c566a";
|
||||||
|
# nord4 = mkLiteral "#d8dee9";
|
||||||
|
# nord5 = mkLiteral "#e5e9f0";
|
||||||
|
# nord6 = mkLiteral "#eceff4";
|
||||||
|
# nord7 = mkLiteral "#8fbcbb";
|
||||||
|
# nord8 = mkLiteral "#88c0d0";
|
||||||
|
# nord9 = mkLiteral "#81a1c1";
|
||||||
|
# nord10 = mkLiteral "#5e81ac";
|
||||||
|
# nord11 = mkLiteral "#bf616a";
|
||||||
|
# nord12 = mkLiteral "#d08770";
|
||||||
|
# nord13 = mkLiteral "#ebcb8b";
|
||||||
|
# nord14 = mkLiteral "#a3be8c";
|
||||||
|
# nord15 = mkLiteral "#b48ead";
|
||||||
|
# spacing = 2;
|
||||||
|
# background-color = mkLiteral "var(nord1)";
|
||||||
|
# background = mkLiteral "var(nord1)";
|
||||||
|
# foreground = mkLiteral "var(nord4)";
|
||||||
|
# normal-background = mkLiteral "var(background)";
|
||||||
|
# normal-foreground = mkLiteral "var(foreground)";
|
||||||
|
# alternate-normal-background = mkLiteral "var(background)";
|
||||||
|
# alternate-normal-foreground = mkLiteral "var(foreground)";
|
||||||
|
# selected-normal-background = mkLiteral "var(nord8)";
|
||||||
|
# selected-normal-foreground = mkLiteral "var(background)";
|
||||||
|
# active-background = mkLiteral "var(background)";
|
||||||
|
# active-foreground = mkLiteral "var(nord10)";
|
||||||
|
# alternate-active-background = mkLiteral "var(background)";
|
||||||
|
# alternate-active-foreground = mkLiteral "var(nord10)";
|
||||||
|
# selected-active-background = mkLiteral "var(nord10)";
|
||||||
|
# selected-active-foreground = mkLiteral "var(background)";
|
||||||
|
# urgent-background = mkLiteral "var(background)";
|
||||||
|
# urgent-foreground = mkLiteral "var(nord11)";
|
||||||
|
# alternate-urgent-background = mkLiteral "var(background)";
|
||||||
|
# alternate-urgent-foreground = mkLiteral "var(nord11)";
|
||||||
|
# selected-urgent-background = mkLiteral "var(nord11)";
|
||||||
|
# selected-urgent-foreground = mkLiteral "var(background)";
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# element = {
|
||||||
|
# padding = mkLiteral "0px 0px 0px 7px";
|
||||||
|
# spacing = mkLiteral "5px";
|
||||||
|
# border = 0;
|
||||||
|
# cursor = mkLiteral "pointer";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element normal.normal" = {
|
||||||
|
# background-color = mkLiteral "var(normal-background)";
|
||||||
|
# text-color = mkLiteral "var(normal-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element normal.urgent" = {
|
||||||
|
# background-color = mkLiteral "var(urgent-background)";
|
||||||
|
# text-color = mkLiteral "var(urgent-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element normal.active" = {
|
||||||
|
# background-color = mkLiteral "var(active-background)";
|
||||||
|
# text-color = mkLiteral "var(active-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element selected.normal" = {
|
||||||
|
# background-color = mkLiteral "var(selected-normal-background)";
|
||||||
|
# text-color = mkLiteral "var(selected-normal-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element selected.urgent" = {
|
||||||
|
# background-color = mkLiteral "var(selected-urgent-background)";
|
||||||
|
# text-color = mkLiteral "var(selected-urgent-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element selected.active" = {
|
||||||
|
# background-color = mkLiteral "var(selected-active-background)";
|
||||||
|
# text-color = mkLiteral "var(selected-active-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element alternate.normal" = {
|
||||||
|
# background-color = mkLiteral "var(alternate-normal-background)";
|
||||||
|
# text-color = mkLiteral "var(alternate-normal-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element alternate.urgent" = {
|
||||||
|
# background-color = mkLiteral "var(alternate-urgent-background)";
|
||||||
|
# text-color = mkLiteral "var(alternate-urgent-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element alternate.active" = {
|
||||||
|
# background-color = mkLiteral "var(alternate-active-background)";
|
||||||
|
# text-color = mkLiteral "var(alternate-active-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element-text" = {
|
||||||
|
# background-color = mkLiteral "rgba(0, 0, 0, 0%)";
|
||||||
|
# text-color = mkLiteral "inherit";
|
||||||
|
# highlight = mkLiteral "inherit";
|
||||||
|
# cursor = mkLiteral "inherit";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "element-icon" = {
|
||||||
|
# background-color = mkLiteral "rgba(0, 0, 0, 0%)";
|
||||||
|
# size = mkLiteral "1.0000em";
|
||||||
|
# text-color = mkLiteral "inherit";
|
||||||
|
# cursor = mkLiteral "inherit";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# window = {
|
||||||
|
# padding = 0;
|
||||||
|
# border = 0;
|
||||||
|
# background-color = mkLiteral "var(background)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# mainbox = {
|
||||||
|
# padding = 0;
|
||||||
|
# border = 0;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# message = {
|
||||||
|
# margin = mkLiteral "0px 7px";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# textbox = {
|
||||||
|
# text-color = mkLiteral "var(foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# listview = {
|
||||||
|
# margin = mkLiteral "0px 0px 5px";
|
||||||
|
# scrollbar = true;
|
||||||
|
# spacing = mkLiteral "2px";
|
||||||
|
# fixed-height = 0;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# scrollbar = {
|
||||||
|
# padding = 0;
|
||||||
|
# handle-width = mkLiteral "14px";
|
||||||
|
# border = 0;
|
||||||
|
# handle-color = mkLiteral "var(nord3)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# button = {
|
||||||
|
# spacing = 0;
|
||||||
|
# text-color = mkLiteral "var(normal-foreground)";
|
||||||
|
# cursor = mkLiteral "pointer";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# "button selected" = {
|
||||||
|
# background-color = mkLiteral "var(selected-normal-background)";
|
||||||
|
# text-color = mkLiteral "var(selected-normal-foreground)";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# inputbar = {
|
||||||
|
# padding = mkLiteral "7px";
|
||||||
|
# margin = mkLiteral "7px";
|
||||||
|
# spacing = 0;
|
||||||
|
# text-color = mkLiteral "var(normal-foreground)";
|
||||||
|
# background-color = mkLiteral "var(nord3)";
|
||||||
|
# children = [ "entry" ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# entry = {
|
||||||
|
# spacing = 0;
|
||||||
|
# cursor = mkLiteral "text";
|
||||||
|
# text-color = mkLiteral "var(normal-foreground)";
|
||||||
|
# background-color = mkLiteral "var(nord3)";
|
||||||
|
# };
|
||||||
|
#};
|
||||||
|
}
|
||||||
144
src/user/modules/gui/wm/i3/default.nix
Normal file
144
src/user/modules/gui/wm/i3/default.nix
Normal file
|
|
@ -0,0 +1,144 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.user.gui.wm.sway;
|
||||||
|
modifier = config.wayland.windowManager.sway.config.modifier;
|
||||||
|
|
||||||
|
wallpaper = builtins.fetchurl {
|
||||||
|
url = "https://images6.alphacoders.com/117/1174033.png";
|
||||||
|
sha256 = "1ph5m9s57076jx6042iipqx2ifzadmd5z4lf5l49wgq4jb92mp16";
|
||||||
|
};
|
||||||
|
|
||||||
|
barStatus = pkgs.writeShellScript "status.sh" ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
while :; do
|
||||||
|
echo "$(ip -4 addr show eno1 | awk '/inet / {print $2}' | cut -d'/' -f1) | $(free -h | awk '/^Mem/ {print $3}') | $(date +'%I:%M:%S %p') | $(date +'%m-%d-%Y')"; sleep 1;
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
{ options.modules.user.gui.wm.i3 = { enable = mkEnableOption "Enable i3 WM"; };
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
xsession = {
|
||||||
|
enable = true;
|
||||||
|
windowManager.i3 = {
|
||||||
|
config = {
|
||||||
|
defaultWorkspace = "workspace number 1";
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
names = [ "Terminus" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
modifier = "Mod1";
|
||||||
|
menu = "rofi -show drun -show-icons -drun-icon-theme Qogir -font 'Noto Sans 14'";
|
||||||
|
terminal = "${pkgs.alacritty}/bin/alacritty";
|
||||||
|
|
||||||
|
bars = [
|
||||||
|
{
|
||||||
|
position = "top";
|
||||||
|
statusCommand = "${barStatus}";
|
||||||
|
fonts = {
|
||||||
|
names = [ "Terminus" ];
|
||||||
|
size = 12.0;
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
background = "#0A0E14";
|
||||||
|
statusline = "#FFFFFF";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
gaps = {
|
||||||
|
smartGaps = false;
|
||||||
|
inner = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
floating = {
|
||||||
|
titlebar = false;
|
||||||
|
border = 0;
|
||||||
|
criteria = [
|
||||||
|
{
|
||||||
|
title = "Android Emulator";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
window = {
|
||||||
|
titlebar = false;
|
||||||
|
border= 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
keybindings = lib.mkOptionDefault {
|
||||||
|
"${modifier}+q" = "kill";
|
||||||
|
"Print" = "exec grim ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png";
|
||||||
|
"${modifier}+Shift+Print" = "exec grim -g \"$(slurp)\" ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png";
|
||||||
|
"${modifier}+Print" = ''exec sh -c 'grim -g "$(swaymsg -t get_tree | jq -j '"'"'.. | select(.type?) | select(.focused).rect | "\(.x),\(.y) \(.width)x\(.height)"'"'"')" ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png' '';
|
||||||
|
"${modifier}+Shift+f" = "exec alacritty -e sh -c 'EDITOR=nvim ranger'";
|
||||||
|
"${modifier}+Shift+d" = "exec rofi -modi emoji -show emoji";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
exec_always ${pkgs.autotiling}/bin/autotiling -sr "1.61"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.rofi = import ./config/rofi { inherit pkgs config lib; };
|
||||||
|
|
||||||
|
home.file.".config/rofi" = {
|
||||||
|
source = ./config/rofi/config;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg = {
|
||||||
|
portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
config.common.default = "*";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme.package = pkgs.juno-theme;
|
||||||
|
theme.name = "Juno-ocean";
|
||||||
|
iconTheme.package = pkgs.qogir-icon-theme;
|
||||||
|
iconTheme.name = "Qogir";
|
||||||
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
style.package = pkgs.juno-theme;
|
||||||
|
platformTheme.name = "gtk";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
pavucontrol
|
||||||
|
xdg-utils
|
||||||
|
wl-clipboard
|
||||||
|
autotiling
|
||||||
|
|
||||||
|
grim
|
||||||
|
jq
|
||||||
|
slurp
|
||||||
|
|
||||||
|
ranger
|
||||||
|
highlight
|
||||||
|
|
||||||
|
terminus-nerdfont
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts-emoji
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
imv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue