Initial usable dragyx/flocke config
This commit is contained in:
parent
44453dbfc6
commit
f4e1faa2c6
13 changed files with 568 additions and 64 deletions
91
hosts/dragyx/common/cli/alacritty.nix
Normal file
91
hosts/dragyx/common/cli/alacritty.nix
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
username = config.modules.other.system.username;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home-manager.users.${username} = {
|
||||||
|
programs = {
|
||||||
|
alacritty = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
alacritty.settings = {
|
||||||
|
shell = {
|
||||||
|
program = "zsh";
|
||||||
|
};
|
||||||
|
font.normal.family = "JetBrainsMono Nerd Font";
|
||||||
|
font.bold.family = "JetBrainsMono Nerd Font";
|
||||||
|
font.italic.family = "JetBrainsMono Nerd Font";
|
||||||
|
font.bold_italic.family = "JetBrainsMono Nerd Font";
|
||||||
|
window.opacity = 0.8;
|
||||||
|
# TODO: maybe use a different way to manage the theme
|
||||||
|
colors = {
|
||||||
|
primary = {
|
||||||
|
background = "#282a36";
|
||||||
|
foreground = "#f8f8f2";
|
||||||
|
bright_foreground = "#ffffff";
|
||||||
|
};
|
||||||
|
cursor = {
|
||||||
|
text = "CellBackground";
|
||||||
|
cursor = "CellForeground";
|
||||||
|
};
|
||||||
|
vi_mode_cursor = {
|
||||||
|
text = "CellBackground";
|
||||||
|
cursor = "CellForeground";
|
||||||
|
};
|
||||||
|
search = {
|
||||||
|
matches = {
|
||||||
|
foreground = "#44475a";
|
||||||
|
background = "#50fa7b";
|
||||||
|
};
|
||||||
|
focused_match = {
|
||||||
|
foreground = "#44475a";
|
||||||
|
background = "#ffb86c";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
footer_bar = {
|
||||||
|
background = "#282a36";
|
||||||
|
foreground = "#f8f8f2";
|
||||||
|
};
|
||||||
|
hints = {
|
||||||
|
start = {
|
||||||
|
foreground = "#282a36";
|
||||||
|
background = "#f1fa8c";
|
||||||
|
};
|
||||||
|
end = {
|
||||||
|
foreground = "#f1fa8c";
|
||||||
|
background = "#282a36";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
line_indicator = {
|
||||||
|
foreground = "None";
|
||||||
|
background = "None";
|
||||||
|
};
|
||||||
|
selection = {
|
||||||
|
text = "CellForeground";
|
||||||
|
background = "#44475a";
|
||||||
|
};
|
||||||
|
normal = {
|
||||||
|
black = "#21222c";
|
||||||
|
red = "#ff5555";
|
||||||
|
green = "#50fa7b";
|
||||||
|
yellow = "#f1fa8c";
|
||||||
|
blue = "#bd93f9";
|
||||||
|
magenta = "#ff79c6";
|
||||||
|
cyan = "#8be9fd";
|
||||||
|
white = "#f8f8f2";
|
||||||
|
};
|
||||||
|
bright = {
|
||||||
|
black = "#6272a4";
|
||||||
|
red = "#ff6e6e";
|
||||||
|
green = "#69ff94";
|
||||||
|
yellow = "#ffffa5";
|
||||||
|
blue = "#d6acff";
|
||||||
|
magenta = "#ff92df";
|
||||||
|
cyan = "#a4ffff";
|
||||||
|
white = "#ffffff";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
hosts/dragyx/common/cli/default.nix
Normal file
6
hosts/dragyx/common/cli/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
_: {
|
||||||
|
imports = [
|
||||||
|
./alacritty.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
|
@ -3,6 +3,9 @@ _: {
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
./hyprland.nix
|
./hyprland.nix
|
||||||
|
./waybar.nix
|
||||||
|
./theming
|
||||||
|
./cli
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
username = config.modules.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
cfg = config.modules.WM.hyprland;
|
cfg = config.modules.WM.hyprland;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
rofi-wayland
|
rofi-wayland
|
||||||
|
@ -27,9 +26,8 @@ let
|
||||||
|
|
||||||
# hyprland settings
|
# hyprland settings
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
|
programs.waybar.enable = true;
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
programs.hyprland.settings = {
|
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "us";
|
kb_layout = "us";
|
||||||
natural_scroll = true;
|
natural_scroll = true;
|
||||||
|
|
48
hosts/dragyx/common/theming/default.nix
Normal file
48
hosts/dragyx/common/theming/default.nix
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
# TODO: Make this more generic / reusable
|
||||||
|
let
|
||||||
|
username = config.modules.other.system.username;
|
||||||
|
gitPath = config.modules.other.system.gitPath;
|
||||||
|
|
||||||
|
|
||||||
|
catpuccin-rofi = pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "catppuccin-rofi";
|
||||||
|
version = "0";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "catppuccin";
|
||||||
|
repo = "rofi";
|
||||||
|
rev = "5350da41a11814f950c3354f090b90d4674a95ce";
|
||||||
|
sha256 = "sha256-DNorfyl3C4RBclF2KDgwvQQwixpTwSRu7fIvihPN8JY=";
|
||||||
|
};
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/
|
||||||
|
mkdir -p $out/.config/
|
||||||
|
|
||||||
|
cp -r $src/basic/.config/rofi/* $out/.config/
|
||||||
|
cp -r $src/basic/.local/share/rofi/themes/* $out/share/
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home-manager.users.${username} = {
|
||||||
|
xdg.configFile."rofi".source = "${catpuccin-rofi}/.config";
|
||||||
|
xdg.dataFile."rofi/themes".source = "${catpuccin-rofi}/share";
|
||||||
|
|
||||||
|
programs.waybar.style = ./waybar-style.css;
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings.exec-once = [
|
||||||
|
"hyprshade auto"
|
||||||
|
"dunst"
|
||||||
|
"hyprpaper"
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg.configFile."hypr/hyprpaper.conf" = { #TODO: generic path
|
||||||
|
text = ''
|
||||||
|
preload = ${gitPath}/hosts/dragyx/common/theming/wallpaper/default.jpg
|
||||||
|
wallpaper = ,${gitPath}/hosts/dragyx/common/theming/wallpaper/default.jpg
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
BIN
hosts/dragyx/common/theming/wallpapers/default.jpg
Normal file
BIN
hosts/dragyx/common/theming/wallpapers/default.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 MiB |
136
hosts/dragyx/common/theming/waybar-style.css
Normal file
136
hosts/dragyx/common/theming/waybar-style.css
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
/* Styles */
|
||||||
|
|
||||||
|
@define-color bar-back rgba(40, 40, 40, 0.2);
|
||||||
|
@define-color widget rgba(40, 40, 40, 0.8);
|
||||||
|
@define-color warning @bryellow;
|
||||||
|
@define-color critical red;
|
||||||
|
@define-color mode black;
|
||||||
|
@define-color unfocused @widget;
|
||||||
|
@define-color active rgba(100, 40, 40, 0.7);
|
||||||
|
@define-color focused red;/*rgba(100, 40, 40, 0.7);*/
|
||||||
|
@define-color inactive purple;
|
||||||
|
@define-color fg1 rgba(0, 0, 255, 1);
|
||||||
|
@define-color fg2 rgba(255, 0, 0, 1);
|
||||||
|
|
||||||
|
/* Reset all styles */
|
||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
min-height: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
text-shadow: none;
|
||||||
|
-gtk-icon-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The whole bar */
|
||||||
|
#waybar {
|
||||||
|
background: @bar-back;
|
||||||
|
/*
|
||||||
|
background: rgba(0, 0, 0, 0);
|
||||||
|
*/
|
||||||
|
/*background-image: linear-gradient(to left, rgba(255, 100, 100, 100), rgba(255, 100, 100, 0));*/
|
||||||
|
background: linear-gradient(90deg, rgba(0,212,255,0.19089642693014708) 0%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 75%, rgba(248,0,255,0.2105042700674019) 100%);
|
||||||
|
color: @white;
|
||||||
|
font-family: JetBrains Mono;
|
||||||
|
font-size: 13pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Each module */
|
||||||
|
#battery,
|
||||||
|
#clock,
|
||||||
|
#cpu,
|
||||||
|
#language,
|
||||||
|
#memory,
|
||||||
|
#mode,
|
||||||
|
#network,
|
||||||
|
#pulseaudio-slider,
|
||||||
|
#temperature,
|
||||||
|
#tray,
|
||||||
|
#backlight,
|
||||||
|
#wireplumber,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#disk,
|
||||||
|
#user,
|
||||||
|
#keyboard-state,
|
||||||
|
#workspaces button,
|
||||||
|
#custom-os-icon,
|
||||||
|
#mpris {
|
||||||
|
background: @widget;
|
||||||
|
margin: 0 0.2em 0 0.2em;
|
||||||
|
padding: 0em 0.3em 0em 0.3em;
|
||||||
|
border-radius: 0.35em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-os-icon {
|
||||||
|
min-width: 0.8em;
|
||||||
|
padding: 0 0.5em 0 0.1em; /*Otherwise the icon is not centered properly*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
min-width: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#keyboard-state {
|
||||||
|
min-width: 2em;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
opacity: 100;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inactive (on unfocused output) */
|
||||||
|
#workspaces button.inactive {
|
||||||
|
background: @inactive;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background: @active;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-os-icon {
|
||||||
|
color: rgba(150, 150, 255, 1);
|
||||||
|
margin: 0 1em 0 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber {
|
||||||
|
/*color: @fg1;*/
|
||||||
|
border-radius: 0 0.3em 0.3em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
/*color: @fg2;*/
|
||||||
|
border-radius: 0.3em 0 0 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Active (on focused output) */
|
||||||
|
#workspaces button.focused {
|
||||||
|
opacity: 100;
|
||||||
|
background: @focused;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Contains an urgent window */
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background: @warning;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Style when cursor is on the button */
|
||||||
|
#workspaces button:hover {
|
||||||
|
opacity: 110;
|
||||||
|
background: @focused;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock.date {
|
||||||
|
border-radius: 0.3em 0 0 0.3em;
|
||||||
|
min-width: 7em;
|
||||||
|
}
|
||||||
|
#clock.time{
|
||||||
|
/*border-radius: 0 0.3em 0.3em 0;*/
|
||||||
|
border-radius: 0;
|
||||||
|
min-width: 4em;
|
||||||
|
}
|
197
hosts/dragyx/common/waybar.nix
Normal file
197
hosts/dragyx/common/waybar.nix
Normal file
|
@ -0,0 +1,197 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
username = config.modules.other.system.username;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [ waybar ];
|
||||||
|
home-manager.users.${username} = {
|
||||||
|
programs.waybar = {
|
||||||
|
systemd.enable = true;
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
modules-left = [
|
||||||
|
"custom/os-icon"
|
||||||
|
"hyprland/workspaces"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"backlight"
|
||||||
|
"clock#time"
|
||||||
|
"wireplumber"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"tray"
|
||||||
|
"network"
|
||||||
|
"battery"
|
||||||
|
];
|
||||||
|
# Modules
|
||||||
|
"custom/os-icon" = {
|
||||||
|
format = "\uf313"; #NixOS logo
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
interval = 10;
|
||||||
|
states = {
|
||||||
|
warning = 30;
|
||||||
|
critical = 15;
|
||||||
|
};
|
||||||
|
format-time = "{H}:{M:02}";
|
||||||
|
format = "{icon} {capacity}%";
|
||||||
|
format-charging = " {capacity}%";
|
||||||
|
format-charging-full = " {capacity}%";
|
||||||
|
format-full = "{icon} {capacity}%";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
"clock#time" = {
|
||||||
|
interval = 10;
|
||||||
|
format = "{:%H:%M}";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
"clock#date" = {
|
||||||
|
interval = 20;
|
||||||
|
format = "{:%d.%m.%Y}";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
memory = {
|
||||||
|
interval = 5;
|
||||||
|
format = " {used:0.1f}G/{total:0.1f}G";
|
||||||
|
states = {
|
||||||
|
warning = 70;
|
||||||
|
critical = 90;
|
||||||
|
};
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
interval = 5;
|
||||||
|
format-wifi = "{icon} {essid}";
|
||||||
|
format-ethernet = "\udb80\ude01 {ifname}";
|
||||||
|
format-disconnected = "\uf0202 Offline";
|
||||||
|
format-alt = "\udb80\uddda {bandwidthDownBytes} \udb81\udd52 {bandwidthUpBytes} \udb82\ude5f {ipaddr}/{cidr}";
|
||||||
|
format-icons = [
|
||||||
|
"\udb82\udd28 "
|
||||||
|
"\udb82\udd25 "
|
||||||
|
"\udb82\udd22 "
|
||||||
|
"\udb82\udd1f "
|
||||||
|
"\udb82\udd2f "
|
||||||
|
];
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
"hyprland/mode" = {
|
||||||
|
format = "test{}";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
"hyprland/window" = {
|
||||||
|
format = "{}";
|
||||||
|
max-length = 30;
|
||||||
|
tooltip = false;
|
||||||
|
rewrite = {
|
||||||
|
"([Aa]lacritty|kitty)" = "\ue795 $1";
|
||||||
|
"(.*) .{15} Mozilla Firefox" = "\ue745 $1";
|
||||||
|
"(^Spotify.*)" = "\uf1bc $1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
disable-scroll-wraparound = true;
|
||||||
|
smooth-scrolling-threshold = 4;
|
||||||
|
enable-bar-scroll = true;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
"1" = "Ⅰ";
|
||||||
|
"2" = "Ⅱ";
|
||||||
|
"3" = "Ⅲ";
|
||||||
|
"4" = "Ⅳ";
|
||||||
|
"5" = "Ⅴ";
|
||||||
|
"6" = "Ⅵ";
|
||||||
|
"7" = "Ⅶ";
|
||||||
|
"8" = "Ⅷ";
|
||||||
|
"9" = "Ⅸ";
|
||||||
|
"10" = "Ⅹ";
|
||||||
|
"11" = "Ⅺ";
|
||||||
|
"12" = "Ⅻ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"pulseaudio/slider" = {
|
||||||
|
min = 0;
|
||||||
|
max = 100;
|
||||||
|
orientation = "horizontal";
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
format-bluetooth = "{icon} {volume}%";
|
||||||
|
format-muted = "";
|
||||||
|
format-icons = {
|
||||||
|
headphone = "";
|
||||||
|
hands-free = "";
|
||||||
|
headset = "";
|
||||||
|
phone = "";
|
||||||
|
portable = "";
|
||||||
|
car = "";
|
||||||
|
default = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
|
scroll-step = 1;
|
||||||
|
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
user = {};
|
||||||
|
temperature = {
|
||||||
|
critical-threshold = 90;
|
||||||
|
interval = 5;
|
||||||
|
format = " {icon} {temperatureC}°";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
format = "{percent}% {icon} ";
|
||||||
|
format-icons = [
|
||||||
|
"\udb80\udf36"
|
||||||
|
"\udb86\ude4e"
|
||||||
|
"\udb86\ude4f"
|
||||||
|
"\udb86\ude50"
|
||||||
|
"\udb86\ude51"
|
||||||
|
"\udb86\ude52"
|
||||||
|
"\udb86\ude53"
|
||||||
|
"\udb86\ude54"
|
||||||
|
"\udb86\ude55"
|
||||||
|
"\udb86\ude56"
|
||||||
|
"\udb81\udee8"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
wireplumber = {
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
format-muted = "\udb81\udd81";
|
||||||
|
format-icons = [
|
||||||
|
"\uf026"
|
||||||
|
"\uf027"
|
||||||
|
"\udb81\udd7e"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
tray = {
|
||||||
|
icon-size = 18;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../configuration.nix
|
../common/default.nix
|
||||||
../../../options/common/pin-registry.nix
|
../../../options/common/pin-registry.nix
|
||||||
../../../options/common/preserve-system.nix
|
../../../options/common/preserve-system.nix
|
||||||
../../../options/desktop/fonts.nix
|
../../../options/desktop/fonts.nix
|
||||||
|
@ -127,6 +127,7 @@
|
||||||
refresh_rate = 60;
|
refresh_rate = 60;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
wayland = true;
|
||||||
};
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -137,9 +138,10 @@
|
||||||
vesktop.enable = false;
|
vesktop.enable = false;
|
||||||
btop.enable = true;
|
btop.enable = true;
|
||||||
mpv.enable = true;
|
mpv.enable = true;
|
||||||
schizofox.enable = true;
|
schizofox.enable = false;
|
||||||
obs.enable = true;
|
obs.enable = true;
|
||||||
vivado.enable = true;
|
# vivado.enable = true;
|
||||||
|
rofi.enable = true;
|
||||||
# neovim.enable = true;
|
# neovim.enable = true;
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -41,18 +41,19 @@ in
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
];
|
];
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
exec-once = if cfg.gnome-keyring then ["${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"]
|
exec-once = (if cfg.gnome-keyring then
|
||||||
|
["${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"]
|
||||||
else []);
|
else []);
|
||||||
monitor = map (
|
monitor = map (
|
||||||
m: "${m.device},${builtins.toString m.resolution.x}x${builtins.toString m.resolution.y}@${builtins.toString m.refresh_rate},${builtins.toString m.position.x}x${builtins.toString m.position.y},${builtins.toString m.scale},transform,${builtins.toString m.transform}"
|
m: "${m.device},${builtins.toString m.resolution.x}x${builtins.toString m.resolution.y}@${builtins.toString m.refresh_rate},${builtins.toString m.position.x}x${builtins.toString m.position.y},${builtins.toString m.scale},transform,${builtins.toString m.transform}"
|
||||||
) monitors; #TODO: default value
|
) monitors; #TODO: default value
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,8 @@ _: {
|
||||||
./zathura.nix
|
./zathura.nix
|
||||||
./obs.nix
|
./obs.nix
|
||||||
./foot.nix
|
./foot.nix
|
||||||
# ./vivado.nix
|
./rofi.nix
|
||||||
|
./vivado2.nix
|
||||||
./WM
|
./WM
|
||||||
./alacritty.nix
|
./alacritty.nix
|
||||||
./firefox.nix
|
./firefox.nix
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
username = config.modules.other.system.username;
|
||||||
|
cfg = config.modules.programs.rofi;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.programs.rofi.enable = mkEnableOption "rofi";
|
||||||
|
options.modules.other.system.wayland = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
description = "Does this system use wayland?";
|
||||||
|
default = false;
|
||||||
|
}; #FIXME: move this to the (hopefully then) refactored options directory
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(if config.modules.other.system.wayland then rofi-wayland else rofi)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -1,58 +1,57 @@
|
||||||
{ config, lib, pkgs, ...}:
|
{ config, lib, pkgs, ...}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
let
|
let
|
||||||
vivado-desktop-symbol = pkgs.makeDesktopItem {
|
vivado-desktop-symbol = pkgs.makeDesktopItem {
|
||||||
name = "vivado-2022_2";
|
name = "vivado-2022_2";
|
||||||
desktopName = "Vivado";
|
desktopName = "Vivado";
|
||||||
exec = "${pkgs.nur.repos.lschuermann.vivado-2022_2}/bin/vivado";
|
exec = "${pkgs.nur.repos.lschuermann.vivado-2022_2}/bin/vivado";
|
||||||
};
|
};
|
||||||
cfg = with lib; [ config.modules.programs.vivado ];
|
cfg = config.modules.programs.vivado;
|
||||||
username = with lib; [ config.modules.other.system.username ];
|
username = config.modules.other.system.username;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.programs.vivado.enable = mkEnableOption "vivado";
|
options.modules.programs.vivado.enable = mkEnableOption "vivado";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username} = {
|
environment.systemPackages = with pkgs; [
|
||||||
environment.systemPackages = with pkgs; [
|
# this propietary software is huge, but I need it for
|
||||||
# this propietary software is huge, but I need it for
|
# university
|
||||||
# university
|
pkgs.nur.repos.lschuermann.vivado-2022_2
|
||||||
pkgs.nur.repos.lschuermann.vivado-2022_2
|
vivado-desktop-symbol
|
||||||
vivado-desktop-symbol
|
];
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
# Create udev rules. Reference: https://blog.kotatsu.dev/posts/2021-09-14-vivado-on-nixos/
|
# Create udev rules. Reference: https://blog.kotatsu.dev/posts/2021-09-14-vivado-on-nixos/
|
||||||
services.udev.packages = [
|
services.udev.packages = [
|
||||||
(pkgs.writeTextFile {
|
(pkgs.writeTextFile {
|
||||||
name = "xilinx-dilligent-usb-udev";
|
name = "xilinx-dilligent-usb-udev";
|
||||||
destination = "/etc/udev/rules.d/52-xilinx-digilent-usb.rules";
|
destination = "/etc/udev/rules.d/52-xilinx-digilent-usb.rules";
|
||||||
text = ''
|
text = ''
|
||||||
ATTR{idVendor}=="1443", MODE:="666"
|
ATTR{idVendor}=="1443", MODE:="666"
|
||||||
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666"
|
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666"
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
(pkgs.writeTextFile {
|
(pkgs.writeTextFile {
|
||||||
name = "xilinx-pcusb-udev";
|
name = "xilinx-pcusb-udev";
|
||||||
destination = "/etc/udev/rules.d/52-xilinx-pcusb.rules";
|
destination = "/etc/udev/rules.d/52-xilinx-pcusb.rules";
|
||||||
text = ''
|
text = ''
|
||||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
|
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
|
||||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
|
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
|
||||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
|
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
|
||||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
|
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
|
||||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
|
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
|
||||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
|
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
|
||||||
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"
|
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
(pkgs.writeTextFile {
|
(pkgs.writeTextFile {
|
||||||
name = "xilinx-ftdi-usb-udev";
|
name = "xilinx-ftdi-usb-udev";
|
||||||
destination = "/etc/udev/rules.d/52-xilinx-ftdi-usb.rules";
|
destination = "/etc/udev/rules.d/52-xilinx-ftdi-usb.rules";
|
||||||
text = ''
|
text = ''
|
||||||
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Xilinx", MODE:="666"
|
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Xilinx", MODE:="666"
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue