mirror of
https://github.com/RGBCube/ncc
synced 2025-07-30 19:47:47 +00:00
Refactor everything to make usage easier with
mutiple systems, also merge all abstractions to avoid huge desctructions in the attrset input.
This commit is contained in:
parent
a0fa73b873
commit
ee2055928c
47 changed files with 343 additions and 279 deletions
18
modules/bat/default.nix
Normal file
18
modules/bat/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{ ulib, theme, ... }: with ulib;
|
||||
|
||||
homeConfiguration {
|
||||
programs.nushell.environmentVariables = {
|
||||
MANPAGER = ''"bat --plain --language man"'';
|
||||
PAGER = ''"bat --plain"'';
|
||||
};
|
||||
|
||||
programs.nushell.shellAliases = {
|
||||
cat = "bat";
|
||||
less = "bat --plain";
|
||||
};
|
||||
|
||||
programs.bat = enabled {
|
||||
config.theme = "base16";
|
||||
themes.base16 = theme.tmTheme;
|
||||
};
|
||||
}
|
9
modules/blueman/default.nix
Normal file
9
modules/blueman/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ulib, ... }: with ulib;
|
||||
|
||||
systemConfiguration {
|
||||
services.blueman = enabled {};
|
||||
|
||||
hardware.bluetooth = enabled {
|
||||
powerOnBoot = true;
|
||||
};
|
||||
}
|
13
modules/boot/default.nix
Normal file
13
modules/boot/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{ ulib, pkgs, ... }: with ulib;
|
||||
|
||||
systemConfiguration {
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
boot.loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
systemd-boot.enable = true;
|
||||
systemd-boot.editor = false;
|
||||
};
|
||||
|
||||
boot.tmp.cleanOnBoot = true;
|
||||
}
|
12
modules/discord/default.nix
Normal file
12
modules/discord/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ ulib, pkgs, theme, ... }: with ulib; merge
|
||||
|
||||
(graphicalConfiguration {
|
||||
xdg.configFile."Vencord/settings/quickCss.css".text = theme.discordCss;
|
||||
})
|
||||
|
||||
(graphicalPackages (with pkgs; [
|
||||
(discord.override {
|
||||
withOpenASAR = true;
|
||||
withVencord = true;
|
||||
})
|
||||
]))
|
48
modules/dunst/default.nix
Normal file
48
modules/dunst/default.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{ ulib, theme, ... }: with ulib;
|
||||
|
||||
graphicalConfiguration {
|
||||
services.dunst = with theme.withHashtag; enabled {
|
||||
iconTheme = icons;
|
||||
|
||||
settings.global = {
|
||||
width = "(300, 900)";
|
||||
|
||||
dmenu = "fuzzel --dmenu";
|
||||
|
||||
corner_radius = corner-radius;
|
||||
gap_size = margin;
|
||||
horizontal_padding = padding;
|
||||
padding = padding;
|
||||
|
||||
frame_color = base0A;
|
||||
frame_width = border-width;
|
||||
separator_color = "frame";
|
||||
|
||||
background = base00;
|
||||
foreground = base05;
|
||||
|
||||
alignment = "center";
|
||||
font = "${font.sans.name} ${toString font.size.normal}";
|
||||
|
||||
min_icon_size = 64;
|
||||
|
||||
offset = "0x${toString margin}";
|
||||
origin = "top-center";
|
||||
};
|
||||
|
||||
settings.urgency_low = {
|
||||
frame_color = base0A;
|
||||
timeout = 5;
|
||||
};
|
||||
|
||||
settings.urgency_normal = {
|
||||
frame_color = base09;
|
||||
timeout = 10;
|
||||
};
|
||||
|
||||
settings.urgency_critical = {
|
||||
frame_color = base08;
|
||||
timeout = 15;
|
||||
};
|
||||
};
|
||||
}
|
7
modules/firefox/default.nix
Normal file
7
modules/firefox/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ulib, ... }: with ulib;
|
||||
|
||||
graphicalConfiguration {
|
||||
programs.firefox = enabled {};
|
||||
|
||||
programs.librewolf = enabled {};
|
||||
}
|
21
modules/fonts/default.nix
Normal file
21
modules/fonts/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ ulib, pkgs, theme, ... }: with ulib; merge
|
||||
|
||||
(systemConfiguration {
|
||||
console = {
|
||||
earlySetup = true;
|
||||
font = "Lat2-Terminus16";
|
||||
packages = with pkgs; [
|
||||
terminus-nerdfont
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
(systemFonts (with pkgs; [
|
||||
theme.font.sans.package
|
||||
theme.font.mono.package
|
||||
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-lgc-plus
|
||||
noto-fonts-emoji
|
||||
]))
|
36
modules/fuzzel/default.nix
Normal file
36
modules/fuzzel/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ ulib, theme, ... }: with ulib;
|
||||
|
||||
graphicalConfiguration {
|
||||
programs.fuzzel = with theme; enabled {
|
||||
settings.main = {
|
||||
dpi-aware = false;
|
||||
font = "${font.sans.name}:size=${toString font.size.big}";
|
||||
icon-theme = icons.name;
|
||||
|
||||
layer = "overlay";
|
||||
prompt = ''"❯ "'';
|
||||
|
||||
terminal = "kitty";
|
||||
|
||||
tabs = 4;
|
||||
|
||||
horizontal-pad = padding;
|
||||
vertical-pad = padding;
|
||||
inner-pad = padding;
|
||||
};
|
||||
|
||||
settings.colors = {
|
||||
background = base00 + "FF";
|
||||
text = base05 + "FF";
|
||||
match = base0A + "FF";
|
||||
selection = base05 + "FF";
|
||||
selection-text = base00 + "FF";
|
||||
border = base0A + "FF";
|
||||
};
|
||||
|
||||
settings.border = {
|
||||
radius = corner-radius;
|
||||
width = border-width;
|
||||
};
|
||||
};
|
||||
}
|
27
modules/ghostty/default.nix
Normal file
27
modules/ghostty/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ ulib, pkgs, upkgs, theme, ... }: with ulib;
|
||||
|
||||
graphicalConfiguration {
|
||||
programs.nushell.environmentVariables.TERMINAL = "ghostty";
|
||||
|
||||
programs.ghostty = enabled {
|
||||
package = upkgs.ghostty;
|
||||
|
||||
shellIntegration.enable = false;
|
||||
|
||||
settings = with theme; {
|
||||
font-size = font.size.normal;
|
||||
font-family = font.mono.name;
|
||||
|
||||
window-padding-x = padding;
|
||||
window-padding-y = padding;
|
||||
|
||||
confirm-close-surface = false;
|
||||
|
||||
window-decoration = false;
|
||||
|
||||
config-file = [
|
||||
(toString (pkgs.writeText "base16-config" ghosttyConfig))
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
69
modules/git/default.nix
Normal file
69
modules/git/default.nix
Normal file
|
@ -0,0 +1,69 @@
|
|||
{ ulib, pkgs, ... }: with ulib;
|
||||
|
||||
homeConfiguration {
|
||||
programs.nushell.shellAliases = {
|
||||
g = "git";
|
||||
|
||||
ga = "git add";
|
||||
gaa = "git add ./";
|
||||
|
||||
gc = "git commit";
|
||||
gca = "git commit --amend --no-edit";
|
||||
gcm = "git commit --message";
|
||||
|
||||
gcl = "git clone";
|
||||
|
||||
gd = "git diff";
|
||||
gds = "git diff --staged";
|
||||
|
||||
gp = "git push";
|
||||
gpf = "git push --force";
|
||||
|
||||
gl = "git log";
|
||||
glo = "git log --oneline";
|
||||
glp = "git log -p --full-diff";
|
||||
|
||||
gpl = "git pull";
|
||||
gplr = "git pull --rebase";
|
||||
gplff = "git pull --ff-only";
|
||||
|
||||
grb = "git rebase";
|
||||
grba = "git rebase --abort";
|
||||
grbc = "git rebase --continue";
|
||||
grbi = "git rebase --interactive";
|
||||
grbm = "git rebase master";
|
||||
|
||||
grl = "git reflog";
|
||||
|
||||
grs = "git reset";
|
||||
grsh = "git reset --hard";
|
||||
|
||||
gs = "git stash";
|
||||
gsp = "git stash pop";
|
||||
|
||||
gsw = "git switch";
|
||||
gswm = "git switch master";
|
||||
|
||||
gsh = "git show";
|
||||
|
||||
gst = "git status";
|
||||
};
|
||||
|
||||
programs.git = enabled {
|
||||
package = pkgs.gitFull;
|
||||
|
||||
userName = "RGBCube";
|
||||
userEmail = "RGBCube@users.noreply.github.com";
|
||||
|
||||
extraConfig = {
|
||||
init.defaultBranch = "master";
|
||||
push.autoSetupRemote = true;
|
||||
|
||||
commit.gpgSign = true;
|
||||
gpg.format = "ssh";
|
||||
user.signingKey = "~/.ssh/id_rsa";
|
||||
|
||||
url."ssh://git@github.com/".insteadOf = "https://github.com/";
|
||||
};
|
||||
};
|
||||
}
|
17
modules/greetd/default.nix
Normal file
17
modules/greetd/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{ ulib, pkgs, ... }: with ulib;
|
||||
|
||||
systemConfiguration {
|
||||
services.greetd = enabled {
|
||||
settings.default_session = {
|
||||
command = "${pkgs.cage}/bin/cage -sd ${pkgs.greetd.gtkgreet}/bin/gtkgreet";
|
||||
user = "nixos";
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."greetd/environments".text = ''
|
||||
Hyprland
|
||||
bash
|
||||
nu
|
||||
sh
|
||||
'';
|
||||
}
|
26
modules/gtk/default.nix
Normal file
26
modules/gtk/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ ulib, pkgs, theme, ... }: with ulib; merge
|
||||
|
||||
(systemConfiguration {
|
||||
programs.dconf = enabled {};
|
||||
})
|
||||
|
||||
(graphicalConfiguration {
|
||||
gtk = enabled {
|
||||
gtk3.extraCss = theme.adwaitaGtkCss;
|
||||
gtk4.extraCss = theme.adwaitaGtkCss;
|
||||
|
||||
font = with theme.font; {
|
||||
inherit (sans) name package;
|
||||
|
||||
size = size.normal;
|
||||
};
|
||||
|
||||
iconTheme = theme.icons;
|
||||
|
||||
theme = {
|
||||
name = "Adwaita-dark";
|
||||
package = pkgs.gnome-themes-extra;
|
||||
};
|
||||
};
|
||||
})
|
||||
|
79
modules/helix/default.nix
Normal file
79
modules/helix/default.nix
Normal file
|
@ -0,0 +1,79 @@
|
|||
{ ulib, lib, pkgs, upkgs, ... }: with ulib; merge
|
||||
|
||||
(homeConfiguration {
|
||||
programs.nushell.environmentVariables.EDITOR = "hx";
|
||||
programs.nushell.shellAliases.x = "hx";
|
||||
|
||||
programs.helix = enabled {
|
||||
settings.theme = "base16_transparent";
|
||||
|
||||
settings.editor = {
|
||||
color-modes = true;
|
||||
completion-replace = true;
|
||||
completion-trigger-len = 0;
|
||||
cursor-shape.insert = "bar";
|
||||
cursorline = true;
|
||||
bufferline = "multiple";
|
||||
file-picker.hidden = false;
|
||||
idle-timeout = 200;
|
||||
line-number = "relative";
|
||||
shell = [ "nu" "--commands" ];
|
||||
text-width = 100;
|
||||
};
|
||||
|
||||
settings.editor.indent-guides = {
|
||||
character = "▏";
|
||||
render = true;
|
||||
};
|
||||
|
||||
settings.editor.statusline.mode = {
|
||||
insert = "INSERT";
|
||||
normal = "NORMAL";
|
||||
select = "SELECT";
|
||||
};
|
||||
|
||||
settings.editor.whitespace = {
|
||||
characters.tab = "→";
|
||||
render.tab = "all";
|
||||
};
|
||||
|
||||
settings.keys = lib.genAttrs [ "normal" "select" ] (_: {
|
||||
D = "extend_to_line_end";
|
||||
});
|
||||
};
|
||||
})
|
||||
|
||||
(homePackages (with pkgs; [
|
||||
# CMAKE
|
||||
cmake-language-server
|
||||
|
||||
# GO
|
||||
gopls
|
||||
|
||||
# HTML
|
||||
vscode-langservers-extracted
|
||||
|
||||
# KOTLIN
|
||||
kotlin-language-server
|
||||
|
||||
# LATEX
|
||||
texlab
|
||||
|
||||
# LUA
|
||||
lua-language-server
|
||||
|
||||
# MARKDOWN
|
||||
marksman
|
||||
|
||||
# NIX
|
||||
nil
|
||||
|
||||
# PYTHON
|
||||
python311Packages.python-lsp-server
|
||||
|
||||
# RUST
|
||||
rust-analyzer
|
||||
|
||||
# ZIG
|
||||
upkgs.zls
|
||||
]))
|
227
modules/hyprland/default.nix
Normal file
227
modules/hyprland/default.nix
Normal file
|
@ -0,0 +1,227 @@
|
|||
{ ulib, pkgs, upkgs, theme, ... }: with ulib; merge3
|
||||
|
||||
(systemConfiguration {
|
||||
hardware.opengl = enabled {};
|
||||
|
||||
xdg.portal = enabled {
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
(graphicalConfiguration {
|
||||
wayland.windowManager.hyprland = with theme; enabled {
|
||||
package = upkgs.hyprland;
|
||||
|
||||
extraConfig =
|
||||
''
|
||||
monitor = , preferred, auto, 1
|
||||
''
|
||||
+
|
||||
''
|
||||
exec-once = wl-paste --type text --watch cliphist store
|
||||
exec-once = wl-paste --type image --watch cliphist store
|
||||
|
||||
exec = swaybg --image ${./wallpaper.png}
|
||||
|
||||
exec = pkill --signal SIGUSR2 waybar
|
||||
''
|
||||
+
|
||||
''
|
||||
binde = SUPER, left , movefocus, l
|
||||
binde = SUPER, down , movefocus, d
|
||||
binde = SUPER, up , movefocus, u
|
||||
binde = SUPER, right, movefocus, r
|
||||
|
||||
binde = SUPER, h, movefocus, l
|
||||
binde = SUPER, j, movefocus, d
|
||||
binde = SUPER, k, movefocus, u
|
||||
binde = SUPER, l, movefocus, r
|
||||
''
|
||||
+
|
||||
''
|
||||
bind = SUPER , TAB, workspace, e+1
|
||||
bind = SUPER+ALT, TAB, workspace, e-1
|
||||
|
||||
bind = SUPER, mouse_up, workspace, e+1
|
||||
bind = SUPER, mouse_down, workspace, e-1
|
||||
|
||||
bind = SUPER, 1, workspace, 1
|
||||
bind = SUPER, 2, workspace, 2
|
||||
bind = SUPER, 3, workspace, 3
|
||||
bind = SUPER, 4, workspace, 4
|
||||
bind = SUPER, 5, workspace, 5
|
||||
|
||||
bind = SUPER+ALT, 1, movetoworkspacesilent, 1
|
||||
bind = SUPER+ALT, 2, movetoworkspacesilent, 2
|
||||
bind = SUPER+ALT, 3, movetoworkspacesilent, 3
|
||||
bind = SUPER+ALT, 4, movetoworkspacesilent, 4
|
||||
bind = SUPER+ALT, 5, movetoworkspacesilent, 5
|
||||
|
||||
bindm = SUPER, mouse:272, movewindow
|
||||
bindm = SUPER, mouse:274, movewindow
|
||||
''
|
||||
+
|
||||
''
|
||||
binde = SUPER+CTRL, left , resizeactive, -100 0
|
||||
binde = SUPER+CTRL, down , resizeactive, 0 100
|
||||
binde = SUPER+CTRL, up , resizeactive, 0 -100
|
||||
binde = SUPER+CTRL, right, resizeactive, 100 0
|
||||
|
||||
binde = SUPER+CTRL, h, resizeactive, -100 0
|
||||
binde = SUPER+CTRL, j, resizeactive, 0 100
|
||||
binde = SUPER+CTRL, k, resizeactive, 0 -100
|
||||
binde = SUPER+CTRL, l, resizeactive, 100 0
|
||||
|
||||
bindm = SUPER, mouse:273, resizewindow
|
||||
''
|
||||
+
|
||||
''
|
||||
bind = SUPER+ALT, left , movewindow, l
|
||||
bind = SUPER+ALT, down , movewindow, d
|
||||
bind = SUPER+ALT, up , movewindow, u
|
||||
bind = SUPER+ALT, right, movewindow, r
|
||||
|
||||
bind = SUPER+ALT, h, movewindow, l
|
||||
bind = SUPER+ALT, j, movewindow, d
|
||||
bind = SUPER+ALT, k, movewindow, u
|
||||
bind = SUPER+ALT, l, movewindow, r
|
||||
''
|
||||
+
|
||||
''
|
||||
bind = SUPER , Q, killactive
|
||||
bind = SUPER , F, fullscreen
|
||||
bind = SUPER+ALT, F, togglefloating
|
||||
|
||||
bind = SUPER+ALT, RETURN, exec, kitty
|
||||
bind = SUPER , RETURN, exec, ghostty
|
||||
bind = SUPER , W , exec, firefox
|
||||
bind = SUPER , D , exec, discord
|
||||
bind = SUPER , M , exec, thunderbird
|
||||
bind = SUPER , T , exec, thunar
|
||||
bind = SUPER , C , exec, hyprpicker --autocopy
|
||||
|
||||
bind = SUPER, B, exec, pkill --signal SIGUSR1 waybar
|
||||
|
||||
bind = SUPER, SPACE, exec, pkill fuzzel; fuzzel
|
||||
bind = SUPER, V , exec, pkill fuzzel; cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
|
||||
|
||||
bind = , PRINT, exec, pkill grim; grim -g "$(slurp -w 0)" - | swappy -f - -o - | wl-copy --type image/png
|
||||
bind = ALT, PRINT, exec, pkill grim; grim - | swappy -f - -o - | wl-copy --type image/png
|
||||
''
|
||||
+
|
||||
''
|
||||
bindle = , XF86AudioRaiseVolume, exec, wpctl set-volume --limit 1.5 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindle = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
|
||||
bindle = , XF86AudioMute , exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindle = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
|
||||
bindle = , XF86MonBrightnessUp , exec, brightnessctl set 5%+
|
||||
bindle = , XF86MonBrightnessDown, exec, brightnessctl set --min-value=0 5%-
|
||||
|
||||
bindl = , XF86PowerOff, exec, pkill fuzzel; echo -en "Suspend\0icon\x1fsystem-suspend\nHibernate\0icon\x1fsystem-suspend-hibernate-alt2\nPower Off\0icon\x1fsystem-shutdown\nReboot\0icon\x1fsystem-reboot" | fuzzel --dmenu | tr --delete " " | tr "[:upper:]" "[:lower:]" | ifne xargs systemctl
|
||||
''
|
||||
+
|
||||
''
|
||||
animations {
|
||||
bezier = material_decelerate, 0.05, 0.7, 0.1, 1
|
||||
|
||||
animation = windows, 1, 2 , material_decelerate, popin 80%
|
||||
animation = border , 1, 10, default
|
||||
animation = fade , 1, 2 , default
|
||||
animation = workspaces,1, 3 , material_decelerate
|
||||
}
|
||||
''
|
||||
+
|
||||
''
|
||||
decoration {
|
||||
drop_shadow = false
|
||||
rounding = ${toString corner-radius}
|
||||
|
||||
blur {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
''
|
||||
+
|
||||
''
|
||||
general {
|
||||
max_fps = 60
|
||||
|
||||
gaps_in = ${toString (margin/ 2)}
|
||||
gaps_out = ${toString margin}
|
||||
border_size = ${toString border-width}
|
||||
|
||||
col.active_border = 0xFF${base0A}
|
||||
col.nogroup_border_active = 0xFF${base0A}
|
||||
|
||||
col.inactive_border = 0xFF${base01}
|
||||
col.nogroup_border = 0xFF${base01}
|
||||
|
||||
cursor_inactive_timeout = 10
|
||||
no_cursor_warps = true
|
||||
|
||||
resize_on_border = true
|
||||
}
|
||||
''
|
||||
+
|
||||
''
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
}
|
||||
''
|
||||
+
|
||||
''
|
||||
input {
|
||||
follow_mouse = 1
|
||||
|
||||
kb_layout = tr
|
||||
|
||||
repeat_delay = 400
|
||||
repeat_rate = 100
|
||||
|
||||
touchpad {
|
||||
clickfinger_behavior = true
|
||||
drag_lock = true
|
||||
|
||||
natural_scroll = true
|
||||
scroll_factor = 0.7
|
||||
}
|
||||
}
|
||||
''
|
||||
+
|
||||
''
|
||||
dwindle {
|
||||
preserve_split = true
|
||||
smart_resizing = false
|
||||
}
|
||||
''
|
||||
+
|
||||
''
|
||||
misc {
|
||||
animate_manual_resizes = true
|
||||
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
|
||||
key_press_enables_dpms = true
|
||||
mouse_move_enables_dpms = true
|
||||
}
|
||||
'';
|
||||
};
|
||||
})
|
||||
|
||||
(homePackages (with pkgs; [
|
||||
brightnessctl
|
||||
cliphist
|
||||
grim
|
||||
slurp
|
||||
swappy
|
||||
swaybg
|
||||
upkgs.hyprpicker
|
||||
wl-clipboard
|
||||
xdg-utils
|
||||
xwaylandvideobridge
|
||||
]))
|
BIN
modules/hyprland/wallpaper.png
Normal file
BIN
modules/hyprland/wallpaper.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
76
modules/kitty/default.nix
Normal file
76
modules/kitty/default.nix
Normal file
|
@ -0,0 +1,76 @@
|
|||
{ ulib, theme, ... }: with ulib;
|
||||
|
||||
graphicalConfiguration {
|
||||
programs.kitty = with theme.withHashtag; enabled {
|
||||
font = with font; {
|
||||
inherit (mono) name package;
|
||||
|
||||
size = size.normal;
|
||||
};
|
||||
|
||||
theme = "Gruvbox Dark";
|
||||
|
||||
settings = {
|
||||
allow_remote_control = true;
|
||||
confirm_os_window_close = 0;
|
||||
focus_follows_mouse = true;
|
||||
mouse_hide_wait = 0;
|
||||
window_padding_width = padding;
|
||||
|
||||
scrollback_lines = 100000;
|
||||
scrollback_pager = "bat --chop-long-lines";
|
||||
|
||||
cursor = base05;
|
||||
cursor_text_color = base00;
|
||||
cursor_shape = "beam";
|
||||
|
||||
url_color = base0D;
|
||||
|
||||
strip_trailing_spaces = "always";
|
||||
|
||||
enable_audio_bell = false;
|
||||
|
||||
active_border_color = base0A;
|
||||
inactive_border_color = base01;
|
||||
window_border_width = "0pt";
|
||||
|
||||
background = base00;
|
||||
foreground = base05;
|
||||
|
||||
selection_background = base02;
|
||||
selection_foreground = base00;
|
||||
|
||||
tab_bar_edge = "top";
|
||||
tab_bar_style = "powerline";
|
||||
|
||||
active_tab_background = base00;
|
||||
active_tab_foreground = base05;
|
||||
|
||||
inactive_tab_background = base01;
|
||||
inactive_tab_foreground = base05;
|
||||
|
||||
color0 = base00;
|
||||
color1 = base08;
|
||||
color2 = base0B;
|
||||
color3 = base0A;
|
||||
color4 = base0D;
|
||||
color5 = base0E;
|
||||
color6 = base0C;
|
||||
color7 = base05;
|
||||
color8 = base03;
|
||||
color9 = base08;
|
||||
color10 = base0B;
|
||||
color11 = base0A;
|
||||
color12 = base0D;
|
||||
color13 = base0E;
|
||||
color14 = base0C;
|
||||
color15 = base07;
|
||||
color16 = base09;
|
||||
color17 = base0F;
|
||||
color18 = base01;
|
||||
color19 = base02;
|
||||
color20 = base04;
|
||||
color21 = base06;
|
||||
};
|
||||
};
|
||||
}
|
22
modules/localisation/default.nix
Normal file
22
modules/localisation/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ ulib, ... }: with ulib;
|
||||
|
||||
systemConfiguration {
|
||||
console.keyMap = "trq";
|
||||
|
||||
time.timeZone = "Europe/Istanbul";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = let
|
||||
locale = "tr_TR.UTF-8";
|
||||
in {
|
||||
LC_ADDRESS = locale;
|
||||
LC_IDENTIFICATION = locale;
|
||||
LC_MEASUREMENT = locale;
|
||||
LC_MONETARY = locale;
|
||||
LC_NAME = locale;
|
||||
LC_NUMERIC = locale;
|
||||
LC_PAPER = locale;
|
||||
LC_TELEPHONE = locale;
|
||||
LC_TIME = locale;
|
||||
};
|
||||
}
|
5
modules/logind/default.nix
Normal file
5
modules/logind/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{ ulib, ... }: with ulib;
|
||||
|
||||
systemConfiguration {
|
||||
services.logind.powerKey = "ignore";
|
||||
}
|
7
modules/networkmanager/default.nix
Normal file
7
modules/networkmanager/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ulib, ... }: with ulib;
|
||||
|
||||
systemConfiguration {
|
||||
networking.networkmanager = enabled {};
|
||||
|
||||
users.extraGroups.networkmanager.members = [ "nixos" ];
|
||||
}
|
35
modules/nix/default.nix
Normal file
35
modules/nix/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ inputs, ulib, upkgs, ... }: with ulib;
|
||||
|
||||
systemConfiguration {
|
||||
nix = {
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "daily";
|
||||
options = "--delete-older-than 3d";
|
||||
persistent = true;
|
||||
};
|
||||
|
||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
||||
|
||||
optimise.automatic = true;
|
||||
|
||||
package = upkgs.nixSuper;
|
||||
|
||||
registry = {
|
||||
nixpkgs.flake = inputs.nixpkgs;
|
||||
default.flake = inputs.nixpkgs;
|
||||
};
|
||||
|
||||
settings.experimental-features = [
|
||||
"fetch-tree"
|
||||
"flakes"
|
||||
"nix-command"
|
||||
"repl-flake"
|
||||
];
|
||||
|
||||
settings.trusted-users = [ "root" "@wheel" ];
|
||||
settings.warn-dirty = false;
|
||||
};
|
||||
|
||||
programs.nix-ld = enabled {};
|
||||
}
|
BIN
modules/nushell/boom.mp3
Normal file
BIN
modules/nushell/boom.mp3
Normal file
Binary file not shown.
BIN
modules/nushell/boom.opus
Normal file
BIN
modules/nushell/boom.opus
Normal file
Binary file not shown.
427
modules/nushell/configuration.nix.nu
Normal file
427
modules/nushell/configuration.nix.nu
Normal file
|
@ -0,0 +1,427 @@
|
|||
''
|
||||
$env.config = {
|
||||
bracketed_paste: true
|
||||
buffer_editor: ""
|
||||
datetime_format: {}
|
||||
edit_mode: vi
|
||||
error_style: fancy
|
||||
float_precision: 2
|
||||
footer_mode: 25
|
||||
render_right_prompt_on_last_line: false
|
||||
shell_integration: false
|
||||
show_banner: false
|
||||
use_ansi_coloring: true
|
||||
use_grid_icons: true
|
||||
use_kitty_protocol: false
|
||||
}
|
||||
|
||||
$env.config.color_config = {
|
||||
binary: white
|
||||
block: white
|
||||
bool: {|| if $in { "light_green" } else { "light_red" } }
|
||||
cell-path: white
|
||||
date: purple
|
||||
duration: white
|
||||
empty: blue
|
||||
filesize: cyan
|
||||
float: white
|
||||
header: green_bold
|
||||
hints: dark_gray
|
||||
int: white
|
||||
list: white
|
||||
nothing: white
|
||||
range: white
|
||||
record: white
|
||||
row_index: green_bold
|
||||
search_result: { bg: red fg: white }
|
||||
separator: white
|
||||
string: {|| if $in =~ "^(#|0x)[a-fA-F0-9]+$" { ($in | str replace "0x" "#") } else { "white" } }
|
||||
leading_trailing_space_bg: { attr: n }
|
||||
|
||||
shape_and: purple_bold
|
||||
shape_binary: purple_bold
|
||||
shape_block: blue_bold
|
||||
shape_bool: light_cyan
|
||||
shape_closure: green_bold
|
||||
shape_custom: green
|
||||
shape_datetime: cyan_bold
|
||||
shape_directory: cyan
|
||||
shape_external: cyan
|
||||
shape_externalarg: green_bold
|
||||
shape_filepath: cyan
|
||||
shape_flag: blue_bold
|
||||
shape_float: purple_bold
|
||||
shape_garbage: { fg: white bg: red attr: b}
|
||||
shape_globpattern: cyan_bold
|
||||
shape_int: purple_bold
|
||||
shape_internalcall: cyan_bold
|
||||
shape_list: cyan_bold
|
||||
shape_literal: blue
|
||||
shape_match_pattern: green
|
||||
shape_nothing: light_cyan
|
||||
shape_operator: yellow
|
||||
shape_or: purple_bold
|
||||
shape_pipe: purple_bold
|
||||
shape_range: yellow_bold
|
||||
shape_record: cyan_bold
|
||||
shape_redirection: purple_bold
|
||||
shape_signature: green_bold
|
||||
shape_string: green
|
||||
shape_table: blue_bold
|
||||
shape_vardecl: purple
|
||||
shape_variable: purple
|
||||
shape_matching_brackets: { attr: u }
|
||||
shape_string_interpolation: cyan_bold
|
||||
}
|
||||
|
||||
$env.config.ls = {
|
||||
clickable_links: true
|
||||
use_ls_colors: true
|
||||
}
|
||||
|
||||
$env.config.rm.always_trash = false
|
||||
|
||||
$env.config.table = {
|
||||
header_on_separator: false
|
||||
index_mode: always
|
||||
mode: rounded
|
||||
padding: { left: 1 right: 1 }
|
||||
show_empty: true
|
||||
trim: {
|
||||
methodology: wrapping
|
||||
wrapping_try_keep_words: true
|
||||
truncating_suffix: "..."
|
||||
}
|
||||
}
|
||||
|
||||
$env.config.explore = {
|
||||
command_bar_text: { fg: "#C4C9C6" }
|
||||
highlight: { fg: black bg: yellow }
|
||||
status: {
|
||||
error: { fg: white bg: red }
|
||||
warn: {}
|
||||
info: {}
|
||||
}
|
||||
status_bar_background: { fg: "#1D1F21" bg: "#C4C9C6" }
|
||||
table: {
|
||||
split_line: { fg: "#404040" }
|
||||
selected_cell: { bg: light_blue }
|
||||
selected_row: {}
|
||||
selected_column: {}
|
||||
}
|
||||
}
|
||||
|
||||
$env.config.history = {
|
||||
file_format: plaintext
|
||||
isolation: false
|
||||
max_size: 100_000
|
||||
sync_on_enter: true
|
||||
}
|
||||
|
||||
$env.config.completions = {
|
||||
algorithm: fuzzy
|
||||
case_sensitive: false
|
||||
partial: true
|
||||
quick: true
|
||||
external: {
|
||||
enable: true
|
||||
max_results: 100
|
||||
completer: {|tokens: list<string>|
|
||||
let expanded_alias = scope aliases | where name == $tokens.0 | get --ignore-errors expansion.0
|
||||
|
||||
let tokens = if $expanded_alias != null {
|
||||
$expanded_alias | split row " " | append ($tokens | skip 1)
|
||||
} else {
|
||||
$tokens
|
||||
}
|
||||
|
||||
let command = $tokens.0 | str trim --left --char "^"
|
||||
|
||||
let completions = carapace $command nushell $tokens | from json | default []
|
||||
|
||||
if ($completions | is-empty) {
|
||||
let path = $tokens | last
|
||||
|
||||
ls $"($path)*" | each {|it|
|
||||
let choice = if ($path | str ends-with "/") {
|
||||
$path | path join ($it.name | path basename)
|
||||
} else {
|
||||
$path | path dirname | path join ($it.name | path basename)
|
||||
}
|
||||
|
||||
let choice = if ($it.type == "dir") and (not ($choice | str ends-with "/")) {
|
||||
$"($choice)/"
|
||||
} else {
|
||||
$choice
|
||||
}
|
||||
|
||||
if ($choice | str contains " ") {
|
||||
$"`($choice)`"
|
||||
} else {
|
||||
$choice
|
||||
}
|
||||
}
|
||||
} else if ($completions | where value =~ "^.*ERR$" | is-empty) {
|
||||
$completions
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$env.config.filesize = {
|
||||
format: auto
|
||||
metric: true
|
||||
}
|
||||
|
||||
$env.config.cursor_shape = {
|
||||
vi_insert: line
|
||||
vi_normal: block
|
||||
}
|
||||
|
||||
$env.config.hooks = {
|
||||
command_not_found: {||
|
||||
task status
|
||||
| where label == boom
|
||||
| get id
|
||||
| each {|id|
|
||||
(task kill $id)
|
||||
task remove $id
|
||||
}
|
||||
|
||||
task spawn --label boom { pw-play ${./boom.opus} }
|
||||
}
|
||||
display_output: "table --expand"
|
||||
env_change: {}
|
||||
pre_execution: [
|
||||
{
|
||||
let prompt = (commandline) | str trim
|
||||
|
||||
if ($prompt | is-empty) {
|
||||
return
|
||||
}
|
||||
|
||||
echo $"(ansi title)($prompt) — nu(char bel)"
|
||||
}
|
||||
]
|
||||
pre_prompt: []
|
||||
}
|
||||
|
||||
$env.config.menus = [
|
||||
{
|
||||
marker: "| "
|
||||
name: completion_menu
|
||||
only_buffer_difference: false
|
||||
style: {
|
||||
description_text: yellow
|
||||
selected_text: green_reverse
|
||||
text: green
|
||||
}
|
||||
type: {
|
||||
col_padding: 2
|
||||
col_width: 20
|
||||
columns: 4
|
||||
layout: columnar
|
||||
}
|
||||
}
|
||||
{
|
||||
marker: "? "
|
||||
name: history_menu
|
||||
only_buffer_difference: true
|
||||
style: {
|
||||
description_text: yellow
|
||||
selected_text: green_reverse
|
||||
text: green
|
||||
}
|
||||
type: {
|
||||
layout: list
|
||||
page_size: 10
|
||||
}
|
||||
}
|
||||
{
|
||||
marker: "? "
|
||||
name: help_menu
|
||||
only_buffer_difference: true
|
||||
style: {
|
||||
description_text: yellow
|
||||
selected_text: green_reverse
|
||||
text: green
|
||||
}
|
||||
type: {
|
||||
col_padding: 2
|
||||
col_width: 20
|
||||
columns: 4
|
||||
description_rows: 10
|
||||
layout: description
|
||||
selection_rows: 4
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
$env.config.keybindings = [
|
||||
{
|
||||
name: completion_menu
|
||||
modifier: none
|
||||
keycode: tab
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menu name: completion_menu }
|
||||
{ send: menunext }
|
||||
{ edit: complete }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: history_menu
|
||||
modifier: control
|
||||
keycode: char_h
|
||||
mode: [ vi_insert vi_normal ]
|
||||
event: { send: menu name: history_menu }
|
||||
}
|
||||
{
|
||||
name: escape
|
||||
modifier: none
|
||||
keycode: escape
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: { send: esc }
|
||||
}
|
||||
{
|
||||
name: cancel_command
|
||||
modifier: control
|
||||
keycode: char_c
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: { send: ctrlc }
|
||||
}
|
||||
{
|
||||
name: quit_shell
|
||||
modifier: control
|
||||
keycode: char_d
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: { send: ctrld }
|
||||
}
|
||||
{
|
||||
name: clear_screen
|
||||
modifier: control
|
||||
keycode: char_l
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: { send: clearscreen }
|
||||
}
|
||||
{
|
||||
name: open_command_editor
|
||||
modifier: control
|
||||
keycode: char_o
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: { send: openeditor }
|
||||
}
|
||||
{
|
||||
name: move_up
|
||||
modifier: none
|
||||
keycode: up
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menuup }
|
||||
{ send: up }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_down
|
||||
modifier: none
|
||||
keycode: down
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menudown }
|
||||
{ send: down }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_left
|
||||
modifier: none
|
||||
keycode: left
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menuleft }
|
||||
{ send: left }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_right_or_take_history_hint
|
||||
modifier: none
|
||||
keycode: right
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintcomplete }
|
||||
{ send: menuright }
|
||||
{ send: right }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_one_word_left
|
||||
modifier: control
|
||||
keycode: left
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: { edit: movewordleft }
|
||||
}
|
||||
{
|
||||
name: move_one_word_right_or_take_history_hint
|
||||
modifier: control
|
||||
keycode: right
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintwordcomplete }
|
||||
{ edit: movewordright }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_to_line_start
|
||||
modifier: control
|
||||
keycode: char_a
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: { edit: movetolinestart }
|
||||
}
|
||||
{
|
||||
name: move_to_line_end_or_take_history_hint
|
||||
modifier: control
|
||||
keycode: char_e
|
||||
mode: [ vi_normal vi_insert ]
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintcomplete }
|
||||
{ edit: movetolineend }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: delete_one_character_backward
|
||||
modifier: none
|
||||
keycode: backspace
|
||||
mode: vi_insert
|
||||
event: { edit: backspace }
|
||||
}
|
||||
{
|
||||
name: delete_one_word_backward
|
||||
modifier: control
|
||||
keycode: backspace
|
||||
mode: vi_insert
|
||||
event: { edit: backspaceword }
|
||||
}
|
||||
{
|
||||
name: newline_or_run_command
|
||||
modifier: none
|
||||
keycode: enter
|
||||
mode: vi_insert
|
||||
event: { send: enter }
|
||||
}
|
||||
]
|
||||
''
|
37
modules/nushell/default.nix
Normal file
37
modules/nushell/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{ config, ulib, pkgs, upkgs, theme, ... }: with ulib; merge3
|
||||
|
||||
(systemConfiguration {
|
||||
users.defaultUserShell = pkgs.nushell;
|
||||
})
|
||||
|
||||
(homeConfiguration {
|
||||
programs.starship = enabled {};
|
||||
|
||||
programs.nushell = enabled {
|
||||
configFile.text = import ./configuration.nix.nu;
|
||||
envFile.text = import ./environment.nix.nu {
|
||||
inherit (upkgs) nuScripts;
|
||||
inherit theme;
|
||||
};
|
||||
|
||||
environmentVariables = {
|
||||
inherit (config.environment.variables) NIX_LD;
|
||||
};
|
||||
|
||||
shellAliases = {
|
||||
cdtmp = "cd (mktemp --directory)";
|
||||
|
||||
la = "ls --all";
|
||||
ll = "ls --long";
|
||||
lla = "ls --long --all";
|
||||
sl = "ls";
|
||||
|
||||
pstree = "pstree -g 2";
|
||||
tree = "tree -C";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
(homePackages (with pkgs; [
|
||||
carapace
|
||||
]))
|
29
modules/nushell/environment.nix.nu
Normal file
29
modules/nushell/environment.nix.nu
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ nuScripts, theme }: ''
|
||||
$env.PROMPT_INDICATOR = "";
|
||||
$env.PROMPT_INDICATOR_VI_INSERT = "";
|
||||
$env.PROMPT_INDICATOR_VI_NORMAL = "";
|
||||
$env.PROMPT_MULTILINE_INDICATOR = "";
|
||||
|
||||
$env.ENV_CONVERSIONS.PATH = {
|
||||
from_string: {|string|
|
||||
$string | split row (char esep) | path expand --no-symlink
|
||||
}
|
||||
to_string: {|value|
|
||||
$value | path expand --no-symlink | str join (char esep)
|
||||
}
|
||||
}
|
||||
|
||||
def --wrapped hx [...arguments] {
|
||||
if ($env.TERM | str contains "kitty") {
|
||||
kitty @ set-spacing padding=0
|
||||
}
|
||||
|
||||
^hx $arguments
|
||||
|
||||
if ($env.TERM | str contains "kitty") {
|
||||
kitty @ set-spacing padding=${toString theme.padding}
|
||||
}
|
||||
}
|
||||
|
||||
use ${nuScripts}/modules/background_task/task.nu
|
||||
''
|
5
modules/openttd/default.nix
Normal file
5
modules/openttd/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{ ulib, pkgs, ... }: with ulib;
|
||||
|
||||
graphicalPackages (with pkgs; [
|
||||
openttd
|
||||
])
|
11
modules/pipewire/default.nix
Normal file
11
modules/pipewire/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ ulib, ... }: with ulib;
|
||||
|
||||
systemConfiguration {
|
||||
security.rtkit = enabled {};
|
||||
sound = enabled {};
|
||||
|
||||
services.pipewire = enabled {
|
||||
alsa = enabled { support32Bit = true; };
|
||||
pulse = enabled {};
|
||||
};
|
||||
}
|
39
modules/pueue/default.nix
Normal file
39
modules/pueue/default.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{ ulib, ... }: with ulib;
|
||||
|
||||
homeConfiguration {
|
||||
services.pueue = enabled {
|
||||
settings = {
|
||||
shared = {
|
||||
pueue_directory = "~/.local/share/pueue";
|
||||
use_unix_socket = true;
|
||||
runtime_directory = null;
|
||||
unix_socket_path = "~/.local/share/pueue/pueue_your_user.socket";
|
||||
host = "localhost";
|
||||
port = 6924;
|
||||
daemon_cert = "~/.local/share/pueue/certs/daemon.cert";
|
||||
daemon_key = "~/.local/share/pueue/certs/daemon.key";
|
||||
shared_secret_path = "~/.local/share/pueue/shared_secret";
|
||||
};
|
||||
|
||||
client = {
|
||||
restart_in_place = false;
|
||||
read_local_logs = true;
|
||||
show_confirmation_questions = false;
|
||||
show_expanded_aliases = false;
|
||||
dark_mode = false;
|
||||
max_status_height = null;
|
||||
status_time_format = "%H:%M:%S";
|
||||
status_datetime_format = "%Y-%m-%d\n%H:%M:%S";
|
||||
};
|
||||
|
||||
daemon = {
|
||||
default_parallel_tasks = 10;
|
||||
pause_group_on_failure = false;
|
||||
pause_all_on_failure = false;
|
||||
callback = "\"Task {{ id }}\nCommand: {{ command }}\nPath: {{ path }}\nFinished with status '{{ result }}'\"";
|
||||
callback_log_lines = 10;
|
||||
groups.default = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
16
modules/python/default.nix
Normal file
16
modules/python/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ ulib, pkgs, ... }: with ulib; merge
|
||||
|
||||
(systemPackages (with pkgs; [
|
||||
(python311.withPackages (pkgs: with pkgs; [
|
||||
pip
|
||||
requests
|
||||
]))
|
||||
virtualenv
|
||||
poetry
|
||||
]))
|
||||
|
||||
(homeConfiguration {
|
||||
programs.nushell.shellAliases = {
|
||||
venv = "virtualenv venv";
|
||||
};
|
||||
})
|
9
modules/qt/default.nix
Normal file
9
modules/qt/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ulib, pkgs, ... }: with ulib;
|
||||
|
||||
graphicalConfiguration {
|
||||
qt = enabled {
|
||||
platformTheme = "gnome";
|
||||
style.name = "adwaita-dark";
|
||||
style.package = pkgs.adwaita-qt;
|
||||
};
|
||||
}
|
15
modules/rust/default.nix
Normal file
15
modules/rust/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ inputs, ulib, pkgs, ... }: with ulib; merge
|
||||
|
||||
(systemConfiguration {
|
||||
nixpkgs.overlays = [ inputs.fenix.overlays.default ];
|
||||
})
|
||||
|
||||
(systemPackages (with pkgs; [
|
||||
(fenix.complete.withComponents [
|
||||
"cargo"
|
||||
"clippy"
|
||||
"rust-src"
|
||||
"rustc"
|
||||
"rustfmt"
|
||||
])
|
||||
]))
|
12
modules/steam/default.nix
Normal file
12
modules/steam/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ ulib, pkgs, ... }: with ulib; merge
|
||||
|
||||
(systemConfiguration {
|
||||
# Steam uses 32-bit drivers for some unholy fucking reason.
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
})
|
||||
|
||||
(graphicalPackages (with pkgs; [
|
||||
steam
|
||||
]))
|
9
modules/steck/default.nix
Normal file
9
modules/steck/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ulib, pkgs, ... }: with ulib; merge
|
||||
|
||||
(systemPackages (with pkgs; [
|
||||
steck
|
||||
]))
|
||||
|
||||
(homeConfiguration {
|
||||
programs.nushell.shellAliases.share = "steck paste";
|
||||
})
|
165
modules/waybar/default.nix
Normal file
165
modules/waybar/default.nix
Normal file
|
@ -0,0 +1,165 @@
|
|||
{ ulib, theme, ... }: with ulib;
|
||||
|
||||
graphicalConfiguration {
|
||||
programs.waybar = with theme.withHashtag; enabled {
|
||||
systemd = enabled {};
|
||||
|
||||
settings = [{
|
||||
layer = "top";
|
||||
height = 2 * corner-radius;
|
||||
|
||||
margin-right = margin;
|
||||
margin-left = margin;
|
||||
margin-top = margin;
|
||||
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
format = "{icon}";
|
||||
format-icons.default = "";
|
||||
format-icons.active = "";
|
||||
|
||||
persistent-workspaces."*" = 5;
|
||||
};
|
||||
|
||||
modules-center = [
|
||||
"hyprland/window"
|
||||
];
|
||||
|
||||
"hyprland/window" = {
|
||||
seperate-outputs = true;
|
||||
|
||||
rewrite."(.*) - Discord" = " $1";
|
||||
rewrite."(.*) — Mozilla Firefox" = " $1";
|
||||
rewrite."(.*) — nu" = " $1";
|
||||
};
|
||||
|
||||
modules-right = [
|
||||
"tray"
|
||||
"pulseaudio"
|
||||
"backlight"
|
||||
"cpu"
|
||||
"memory"
|
||||
"network"
|
||||
"battery"
|
||||
"clock"
|
||||
];
|
||||
|
||||
tray = {
|
||||
reverse-direction = true;
|
||||
spacing = 5;
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{format_source} {icon} {volume}%";
|
||||
format-bluetooth = "{format_source} {icon} {volume}%";
|
||||
format-bluetooth-muted = "{format_source} {icon} ";
|
||||
format-muted = "{format_source} ";
|
||||
format-source = "";
|
||||
format-source-muted = "";
|
||||
|
||||
format-icons.headphone = "";
|
||||
format-icons.headset = "";
|
||||
format-icons.default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
|
||||
backlight = {
|
||||
format = "{icon} {percent}%";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
|
||||
cpu.format = " {usage}%";
|
||||
memory.format = " {}%";
|
||||
|
||||
network = {
|
||||
format-disconnected = " ";
|
||||
format-ethernet = " {ipaddr}/{cidr}";
|
||||
format-linked = " {ifname} (No IP)";
|
||||
format-wifi = " {signalStrength}%";
|
||||
};
|
||||
|
||||
battery = {
|
||||
format = "{icon} {capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
|
||||
states.warning = 30;
|
||||
states.critical = 15;
|
||||
};
|
||||
|
||||
clock = {
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
};
|
||||
}];
|
||||
|
||||
style = ''
|
||||
* {
|
||||
border: none;
|
||||
border-radius: ${toString corner-radius}px;
|
||||
font-family: "${font.sans.name}";
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
margin-right: ${toString padding}px;
|
||||
}
|
||||
|
||||
#waybar {
|
||||
background: ${base00};
|
||||
color: ${base05};
|
||||
}
|
||||
|
||||
#workspaces button:nth-child(1) {
|
||||
color: ${base08};
|
||||
}
|
||||
|
||||
#workspaces button:nth-child(2) {
|
||||
color: ${base09};
|
||||
}
|
||||
|
||||
#workspaces button:nth-child(3) {
|
||||
color: ${base0A};
|
||||
}
|
||||
|
||||
#workspaces button:nth-child(4) {
|
||||
color: ${base0B};
|
||||
}
|
||||
|
||||
#workspaces button:nth-child(5) {
|
||||
color: ${base0C};
|
||||
}
|
||||
|
||||
#tray, #pulseaudio, #backlight, #cpu, #memory, #network, #battery, #clock {
|
||||
margin-left: 20px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue