current state of things
This commit is contained in:
parent
63fbd6d499
commit
b8d157ab6f
85 changed files with 895 additions and 6014 deletions
384
.old/kdekeys
384
.old/kdekeys
|
@ -1,384 +0,0 @@
|
|||
[ActivityManager][Global Shortcuts]
|
||||
switch-to-activity-1becc5fb-3def-4b2a-82c9-bd886f792a7c=
|
||||
|
||||
[KDE Keyboard Layout Switcher][Global Shortcuts]
|
||||
Switch to Next Keyboard Layout=Ctrl+Alt+K
|
||||
|
||||
[StandardShortcuts]
|
||||
AboutApp=
|
||||
AboutKDE=
|
||||
Activate Next Tab=Ctrl+PgDown; Ctrl+]
|
||||
Activate Previous Tab=Ctrl+PgUp; Ctrl+[
|
||||
ActualSize=Ctrl+0
|
||||
AddBookmark=Ctrl+B
|
||||
Back=Alt+Left; Back
|
||||
BackwardWord=Ctrl+Left
|
||||
Begin=Ctrl+Home
|
||||
BeginningOfLine=Home
|
||||
Clear=
|
||||
Close=Ctrl+W; Ctrl+Esc
|
||||
ConfigureNotifications=
|
||||
ConfigureToolbars=
|
||||
Copy=Ctrl+C; Ctrl+Ins
|
||||
CreateFolder=F10
|
||||
Cut=Shift+Del; Ctrl+X
|
||||
DeleteFile=Shift+Del
|
||||
DeleteWordBack=Ctrl+Backspace
|
||||
DeleteWordForward=Ctrl+Del
|
||||
Deselect=Ctrl+Shift+A
|
||||
DocumentBack=Alt+Shift+Left
|
||||
DocumentForward=Alt+Shift+Right
|
||||
Donate=
|
||||
EditBookmarks=
|
||||
End=Ctrl+End
|
||||
EndOfLine=End
|
||||
Find=Ctrl+F
|
||||
FindNext=F3
|
||||
FindPrev=Shift+F3
|
||||
FitToHeight=
|
||||
FitToPage=
|
||||
FitToWidth=
|
||||
Forward=Alt+Right; Forward
|
||||
ForwardWord=Ctrl+Right
|
||||
FullScreen=Ctrl+Shift+F
|
||||
Goto=
|
||||
GotoLine=Ctrl+G
|
||||
GotoPage=
|
||||
Help=F1
|
||||
Home=Alt+Home; Home Page
|
||||
KeyBindings=Ctrl+Alt+,
|
||||
Mail=
|
||||
MoveToTrash=Del
|
||||
New=Ctrl+N
|
||||
Next=PgDown
|
||||
NextCompletion=Ctrl+Down
|
||||
Open=Ctrl+O
|
||||
OpenRecent=
|
||||
Paste=Shift+Ins; Ctrl+V
|
||||
Paste Selection=Ctrl+Shift+Ins
|
||||
Preferences=Ctrl+Shift+,
|
||||
PrevCompletion=Ctrl+Up
|
||||
Print=Ctrl+P
|
||||
PrintPreview=
|
||||
Prior=PgUp
|
||||
Quit=Ctrl+Q
|
||||
Redo=Ctrl+Shift+Z
|
||||
Reload=Refresh; F5
|
||||
RenameFile=F2
|
||||
Replace=Ctrl+R
|
||||
ReportBug=
|
||||
Revert=
|
||||
RotateDown=Down
|
||||
RotateUp=Up
|
||||
Save=Ctrl+S
|
||||
SaveAs=Ctrl+Shift+S
|
||||
SaveOptions=
|
||||
SelectAll=Ctrl+A
|
||||
ShowHideHiddenFiles=Alt+.; Ctrl+H
|
||||
ShowMenubar=Ctrl+M
|
||||
ShowStatusbar=
|
||||
ShowToolbar=
|
||||
Spelling=
|
||||
SubstringCompletion=Ctrl+T
|
||||
SwitchApplicationLanguage=
|
||||
TextCompletion=Ctrl+E
|
||||
TipofDay=
|
||||
Undo=Ctrl+Z
|
||||
Up=Alt+Up
|
||||
WhatsThis=Shift+F1
|
||||
Zoom=
|
||||
ZoomIn=Ctrl++; Ctrl+=
|
||||
ZoomOut=Ctrl+-
|
||||
|
||||
[bismuth][Global Shortcuts]
|
||||
decrease_master_size=
|
||||
decrease_master_win_count=Meta+[
|
||||
decrease_window_height=Meta+Ctrl+K; Meta+Ctrl+Up
|
||||
decrease_window_width=Meta+Ctrl+Right; Meta+Ctrl+H
|
||||
focus_bottom_window=
|
||||
focus_left_window=
|
||||
focus_next_window=
|
||||
focus_prev_window=
|
||||
focus_right_window=
|
||||
focus_upper_window=
|
||||
increase_master_size=
|
||||
increase_master_win_count=Meta+]
|
||||
increase_window_height=Meta+Ctrl+Down; Meta+Ctrl+J
|
||||
increase_window_width=Meta+Ctrl+Left; Meta+Ctrl+L
|
||||
move_window_to_bottom_pos=Meta+Shift+Down; Meta+Shift+J
|
||||
move_window_to_left_pos=Meta+Shift+H
|
||||
move_window_to_next_pos=
|
||||
move_window_to_prev_pos=
|
||||
move_window_to_right_pos=Meta+Shift+L
|
||||
move_window_to_upper_pos=Meta+Shift+K; Meta+Shift+Up
|
||||
next_layout=Meta+\\
|
||||
prev_layout=
|
||||
push_window_to_master=
|
||||
rotate=
|
||||
rotate_part=
|
||||
rotate_reverse=
|
||||
toggle_float_layout=
|
||||
toggle_monocle_layout=
|
||||
toggle_quarter_layout=
|
||||
toggle_spiral_layout=
|
||||
toggle_spread_layout=
|
||||
toggle_stair_layout=
|
||||
toggle_three_column_layout=
|
||||
toggle_tile_layout=
|
||||
toggle_window_floating=Meta+Space
|
||||
|
||||
[kaccess][Global Shortcuts]
|
||||
Toggle Screen Reader On and Off=Meta+Alt+S
|
||||
|
||||
[kcm_touchpad][Global Shortcuts]
|
||||
Disable Touchpad=Touchpad Off
|
||||
Enable Touchpad=Touchpad On
|
||||
Toggle Touchpad=Touchpad Toggle
|
||||
|
||||
[kded5][Global Shortcuts]
|
||||
Show System Activity=Ctrl+Esc
|
||||
display=Display; Meta+P
|
||||
|
||||
[khotkeys][Global Shortcuts]
|
||||
{162b7cd1-2ed9-40a7-9e77-8cdac1ced63b}=Meta+Return
|
||||
{2b174cac-ee33-41d3-979c-c2151b4485c3}=Meta+F
|
||||
{d03619b6-9b3c-48cc-9d9c-a2aadb485550}=
|
||||
|
||||
[kmix][Global Shortcuts]
|
||||
decrease_microphone_volume=Microphone Volume Down
|
||||
decrease_volume=Volume Down
|
||||
increase_microphone_volume=Microphone Volume Up
|
||||
increase_volume=Volume Up
|
||||
mic_mute=Microphone Mute; Meta+Volume Mute
|
||||
mute=Volume Mute
|
||||
|
||||
[ksmserver][Global Shortcuts]
|
||||
Halt Without Confirmation=
|
||||
Lock Session=Screensaver; Ctrl+Alt+L
|
||||
Log Out=Ctrl+Alt+Del
|
||||
Log Out Without Confirmation=
|
||||
Reboot Without Confirmation=
|
||||
|
||||
[kwin][Global Shortcuts]
|
||||
Activate Window Demanding Attention=Ctrl+Alt+A
|
||||
Decrease Opacity=
|
||||
Expose=Ctrl+F9
|
||||
ExposeAll=Ctrl+F10; Launch (C)
|
||||
ExposeClass=Ctrl+F7
|
||||
Increase Opacity=
|
||||
Invert Screen Colors=
|
||||
Kill Window=Ctrl+Alt+Esc
|
||||
MoveMouseToCenter=Meta+F6
|
||||
MoveMouseToFocus=Meta+F5
|
||||
MoveZoomDown=
|
||||
MoveZoomLeft=
|
||||
MoveZoomRight=
|
||||
MoveZoomUp=
|
||||
Setup Window Shortcut=
|
||||
Show Desktop=
|
||||
ShowDesktopGrid=Ctrl+F8
|
||||
Suspend Compositing=Alt+Shift+F12
|
||||
Switch One Desktop Down=
|
||||
Switch One Desktop Up=
|
||||
Switch One Desktop to the Left=
|
||||
Switch One Desktop to the Right=
|
||||
Switch Window Down=Meta+J; Meta+Down
|
||||
Switch Window Left=Meta+Left; Meta+H
|
||||
Switch Window Right=Meta+Right; Meta+L
|
||||
Switch Window Up=Meta+Up; Meta+K
|
||||
Switch to Desktop 1=Meta+1
|
||||
Switch to Desktop 10=
|
||||
Switch to Desktop 11=
|
||||
Switch to Desktop 12=
|
||||
Switch to Desktop 13=
|
||||
Switch to Desktop 14=
|
||||
Switch to Desktop 15=
|
||||
Switch to Desktop 16=
|
||||
Switch to Desktop 17=
|
||||
Switch to Desktop 18=
|
||||
Switch to Desktop 19=
|
||||
Switch to Desktop 2=Meta+2
|
||||
Switch to Desktop 20=
|
||||
Switch to Desktop 3=Meta+3
|
||||
Switch to Desktop 4=Meta+4
|
||||
Switch to Desktop 5=
|
||||
Switch to Desktop 6=
|
||||
Switch to Desktop 7=
|
||||
Switch to Desktop 8=
|
||||
Switch to Desktop 9=
|
||||
Switch to Next Desktop=
|
||||
Switch to Next Screen=
|
||||
Switch to Previous Desktop=
|
||||
Switch to Previous Screen=
|
||||
Switch to Screen 0=
|
||||
Switch to Screen 1=
|
||||
Switch to Screen 2=
|
||||
Switch to Screen 3=
|
||||
Switch to Screen 4=
|
||||
Switch to Screen 5=
|
||||
Switch to Screen 6=
|
||||
Switch to Screen 7=
|
||||
Toggle Night Color=
|
||||
Toggle Window Raise/Lower=
|
||||
Walk Through Desktop List=
|
||||
Walk Through Desktop List (Reverse)=
|
||||
Walk Through Desktops=
|
||||
Walk Through Desktops (Reverse)=
|
||||
Walk Through Windows=Alt+Tab
|
||||
Walk Through Windows (Reverse)=Alt+Shift+Backtab
|
||||
Walk Through Windows Alternative=
|
||||
Walk Through Windows Alternative (Reverse)=
|
||||
Walk Through Windows of Current Application=Alt+`
|
||||
Walk Through Windows of Current Application (Reverse)=Alt+~
|
||||
Walk Through Windows of Current Application Alternative=
|
||||
Walk Through Windows of Current Application Alternative (Reverse)=
|
||||
Window Above Other Windows=
|
||||
Window Below Other Windows=
|
||||
Window Close=Alt+F4; Meta+Shift+Q
|
||||
Window Fullscreen=Meta+Shift+Space
|
||||
Window Grow Horizontal=
|
||||
Window Grow Vertical=
|
||||
Window Lower=
|
||||
Window Maximize=Meta+PgUp
|
||||
Window Maximize Horizontal=
|
||||
Window Maximize Vertical=
|
||||
Window Minimize=Meta+PgDown
|
||||
Window Move=
|
||||
Window Move Center=
|
||||
Window No Border=
|
||||
Window On All Desktops=
|
||||
Window One Desktop Down=Meta+Ctrl+Shift+Down
|
||||
Window One Desktop Up=Meta+Ctrl+Shift+Up
|
||||
Window One Desktop to the Left=Meta+Ctrl+Shift+Left
|
||||
Window One Desktop to the Right=Meta+Ctrl+Shift+Right
|
||||
Window Operations Menu=Alt+F3
|
||||
Window Pack Down=
|
||||
Window Pack Left=
|
||||
Window Pack Right=
|
||||
Window Pack Up=
|
||||
Window Quick Tile Bottom=
|
||||
Window Quick Tile Bottom Left=
|
||||
Window Quick Tile Bottom Right=
|
||||
Window Quick Tile Left=
|
||||
Window Quick Tile Right=
|
||||
Window Quick Tile Top=
|
||||
Window Quick Tile Top Left=
|
||||
Window Quick Tile Top Right=
|
||||
Window Raise=
|
||||
Window Resize=
|
||||
Window Shade=
|
||||
Window Shrink Horizontal=
|
||||
Window Shrink Vertical=
|
||||
Window to Desktop 1=Meta+!
|
||||
Window to Desktop 10=
|
||||
Window to Desktop 11=
|
||||
Window to Desktop 12=
|
||||
Window to Desktop 13=
|
||||
Window to Desktop 14=
|
||||
Window to Desktop 15=
|
||||
Window to Desktop 16=
|
||||
Window to Desktop 17=
|
||||
Window to Desktop 18=
|
||||
Window to Desktop 19=
|
||||
Window to Desktop 2=Meta+@
|
||||
Window to Desktop 20=
|
||||
Window to Desktop 3=Meta+#
|
||||
Window to Desktop 4=Meta+$
|
||||
Window to Desktop 5=
|
||||
Window to Desktop 6=
|
||||
Window to Desktop 7=
|
||||
Window to Desktop 8=
|
||||
Window to Desktop 9=
|
||||
Window to Next Desktop=
|
||||
Window to Next Screen=Meta+Tab
|
||||
Window to Previous Desktop=
|
||||
Window to Previous Screen=
|
||||
Window to Screen 0=
|
||||
Window to Screen 1=
|
||||
Window to Screen 2=
|
||||
Window to Screen 3=
|
||||
Window to Screen 4=
|
||||
Window to Screen 5=
|
||||
Window to Screen 6=
|
||||
Window to Screen 7=
|
||||
view_actual_size=Meta+0
|
||||
view_zoom_in=Meta+=
|
||||
view_zoom_out=Meta+-
|
||||
|
||||
[mediacontrol][Global Shortcuts]
|
||||
mediavolumedown=
|
||||
mediavolumeup=
|
||||
nextmedia=Media Next
|
||||
pausemedia=Media Pause
|
||||
playmedia=
|
||||
playpausemedia=Media Play
|
||||
previousmedia=Media Previous
|
||||
stopmedia=Media Stop
|
||||
|
||||
[org.kde.dolphin.desktop][Global Shortcuts]
|
||||
_launch=Meta+E
|
||||
|
||||
[org.kde.krunner.desktop][Global Shortcuts]
|
||||
RunClipboard=Alt+Shift+F2
|
||||
_launch=Alt+Space; Search; Meta+D; Alt+F2
|
||||
|
||||
[org.kde.plasma.emojier.desktop][Global Shortcuts]
|
||||
_launch=Meta+.
|
||||
|
||||
[org.kde.spectacle.desktop][Global Shortcuts]
|
||||
ActiveWindowScreenShot=Meta+Print
|
||||
CurrentMonitorScreenShot=
|
||||
FullScreenScreenShot=Shift+Print
|
||||
OpenWithoutScreenshot=
|
||||
RectangularRegionScreenShot=Meta+Shift+S; Meta+Shift+Print
|
||||
WindowUnderCursorScreenShot=Meta+Ctrl+Print
|
||||
_launch=Print
|
||||
|
||||
[org_kde_powerdevil][Global Shortcuts]
|
||||
Decrease Keyboard Brightness=Keyboard Brightness Down
|
||||
Decrease Screen Brightness=Monitor Brightness Down
|
||||
Hibernate=Hibernate
|
||||
Increase Keyboard Brightness=Keyboard Brightness Up
|
||||
Increase Screen Brightness=Monitor Brightness Up
|
||||
PowerDown=Power Down
|
||||
PowerOff=Power Off
|
||||
Sleep=Sleep
|
||||
Toggle Keyboard Backlight=Keyboard Light On/Off
|
||||
Turn Off Screen=
|
||||
|
||||
[plasmashell][Global Shortcuts]
|
||||
activate task manager entry 1=
|
||||
activate task manager entry 10=
|
||||
activate task manager entry 2=
|
||||
activate task manager entry 3=
|
||||
activate task manager entry 4=
|
||||
activate task manager entry 5=Meta+5
|
||||
activate task manager entry 6=Meta+6
|
||||
activate task manager entry 7=Meta+7
|
||||
activate task manager entry 8=Meta+8
|
||||
activate task manager entry 9=Meta+9
|
||||
activate widget 4=Alt+F1
|
||||
clear-history=
|
||||
clipboard_action=Ctrl+Alt+X
|
||||
cycleNextAction=
|
||||
cyclePrevAction=
|
||||
edit_clipboard=
|
||||
manage activities=Meta+Q
|
||||
next activity=
|
||||
previous activity=Meta+Shift+Tab
|
||||
repeat_action=Ctrl+Alt+R
|
||||
show dashboard=Ctrl+F12
|
||||
show-barcode=
|
||||
show-on-mouse-pos=Meta+V
|
||||
stop current activity=Meta+S
|
||||
switch to next activity=
|
||||
switch to previous activity=
|
||||
toggle do not disturb=
|
||||
|
||||
[systemsettings.desktop][Global Shortcuts]
|
||||
_launch=Tools
|
||||
kcm-kscreen=
|
||||
kcm-lookandfeel=
|
||||
kcm-users=
|
||||
powerdevilprofilesconfig=
|
||||
screenlocker=
|
26
.old/op.pal
26
.old/op.pal
|
@ -1,26 +0,0 @@
|
|||
background #232326
|
||||
foreground #f7eff1
|
||||
|
||||
color0 #434447
|
||||
color8 #95988a
|
||||
color1 #ac383d
|
||||
color9 #d45f68
|
||||
color2 #709c4c
|
||||
color10 #8baf6f
|
||||
|
||||
color3 #c09875
|
||||
color11 #eda25c
|
||||
color4 #5b97de
|
||||
color12 #b8e3ff
|
||||
color5 #494286
|
||||
color13 #9477fa
|
||||
color6 #42c3b2
|
||||
color14 #7fc8a5
|
||||
color7 #e7e4d8
|
||||
color15 #fefefc
|
||||
|
||||
selection_background #ac838d
|
||||
selection_foreground #f7eff1
|
||||
|
||||
cursor #e7e4d8
|
||||
cursor_text_color #709c4c
|
|
@ -1,49 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
fetchFromGitHub,
|
||||
kcoreaddons,
|
||||
kwindowsystem,
|
||||
plasma-framework,
|
||||
systemsettings,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
esbuild,
|
||||
}:
|
||||
mkDerivation rec {
|
||||
pname = "bismuth";
|
||||
version = "3.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Bismuth-Forge";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-IWwFsYqoqW3924+pf8L+acIt31aU/mhqakXbT9Q4Bqw=";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DUSE_TSC=OFF"
|
||||
"-DUSE_NPM=OFF"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
esbuild
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kcoreaddons
|
||||
kwindowsystem
|
||||
plasma-framework
|
||||
systemsettings
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A dynamic tiling extension for KWin";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ pasqui23 ];
|
||||
homepage = "https://bismuth-forge.github.io/bismuth/";
|
||||
inherit (kwindowsystem.meta) platforms;
|
||||
};
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
cpyparsing,
|
||||
ipykernel,
|
||||
mypy,
|
||||
pexpect,
|
||||
pygments,
|
||||
pytestCheckHook,
|
||||
prompt-toolkit,
|
||||
tkinter,
|
||||
watchdog,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
pygments = pkgs.python310Packages.callPackage ./pygments.nix { };
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "coconut";
|
||||
version = "3.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "evhub";
|
||||
repo = "coconut";
|
||||
rev = "v${version}";
|
||||
sha256 = lib.fakeSha256;
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
cpyparsing
|
||||
ipykernel
|
||||
mypy
|
||||
pygments
|
||||
prompt-toolkit
|
||||
watchdog
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pexpect
|
||||
pytestCheckHook
|
||||
tkinter
|
||||
];
|
||||
|
||||
# Currently most tests have performance issues
|
||||
pytestFlagsArray = [
|
||||
"coconut/tests/constants_test.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "coconut" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://coconut-lang.org/";
|
||||
description = "Simple, elegant, Pythonic functional programming";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ fabianhjr ];
|
||||
};
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitea,
|
||||
rustPlatform,
|
||||
libX11,
|
||||
pkg-config,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "culr";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "git.atagen.co";
|
||||
owner = "atagen";
|
||||
repo = pname + "-rs";
|
||||
rev = "8cb1323bdc388ce1fdb0675ade756ea8b59b803d";
|
||||
sha256 = "sha256-Blo1PyhzKU4LzflmeGrvWOQEon2BCTkF3uQR+7D5/kc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
# cargoSha256 = "sha256-Vnhni8tckrexlJ85gfSDEAVWhH6oVHn9/z2O2OIVR5o=";
|
||||
cargoLock = {
|
||||
lockFile = "${src}/Cargo.lock";
|
||||
outputHashes = {
|
||||
"xrdb-0.1.2" = "sha256-7B8MsELW927yQEwQJ3DvTB+45Djw21VStBdehaMomRM=";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "colourise piped input";
|
||||
homepage = "https://git.atagen.co/atagen/culr";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# hyprland-system76-scheduler-integration = pkgs.callPackage ./hyprland-system76-scheduler-integration.nix {};
|
||||
culr = pkgs.callPackage ./culr.nix { };
|
||||
# eww-git = pkgs.callPackage ./eww.nix {};
|
||||
# everforest-theme = pkgs.callPackage ./everforst-theme.nix {};
|
||||
# coconut = pkgs.python310Packages.callPackage ./coconut.nix {};
|
||||
# kanagawa-icons = pkgs.callPackage ./kanagawa-icons.nix {};
|
||||
# gruvbox-kvantum = pkgs.callPackage ./gruvbox-kvantum.nix {};
|
||||
# gruvbox-gtk-theme = pkgs.callPackage ./gruvbox-gtk-theme.nix {};
|
||||
# system76-scheduler = pkgs.callPackage ./system76-scheduler.nix {};
|
||||
# swayosd = pkgs.callPackage ./swayosd.nix {};
|
||||
# fuzzel = pkgs.callPackage ./fuzzel.nix {};
|
||||
# git-credential-keepassxc = pkgs.callPackage git-credential-keepassxc.nix {};
|
||||
# lemurs = pkgs.callPackage lemurs.nix {};
|
||||
# glpaper = pkgs.callPackage glpaper.nix {};
|
||||
# ly = pkgs.callPackage ly.nix {};
|
||||
# headscale-ui = pkgs.callPackage headscale-ui.nix {};
|
||||
# kwin-system76-scheduler-integration = pkgs.callPackage kwin-system76-scheduler-integration.nix {};
|
||||
# simplewaita-gtk = pkgs.callPackage simplewaita-gtk.nix {};
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
gnome-themes-extra,
|
||||
gtk-engine-murrine,
|
||||
gtk_engines,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "everforest-gtk-theme";
|
||||
version = "unstable-2023-03-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Fausto-Korpsvart";
|
||||
repo = "Everforest-GTK-Theme";
|
||||
rev = "8481714cf9ed5148694f1916ceba8fe21e14937b";
|
||||
sha256 = "sha256-NO12ku8wnW/qMHKxi5TL/dqBxH0+cZbe+fU0iicb9JU=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gnome-themes-extra # adwaita engine for Gtk2
|
||||
gtk_engines # pixmap engine for Gtk2
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
gtk-engine-murrine # murrine engine for Gtk2
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/themes
|
||||
cp -a themes/Everforest-Dark-B $out/share/themes/Everforest-Dark
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
gtk3,
|
||||
gdk-pixbuf,
|
||||
withWayland ? true,
|
||||
gtk-layer-shell,
|
||||
stdenv,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "eww";
|
||||
version = "0.4.0-dirty";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elkowar";
|
||||
repo = pname;
|
||||
rev = "25e50eda46379bccd8a7887c18ee35833e0460e8";
|
||||
sha256 = "sha256-8e6gHSg6FDp6nU5v89D44Tqb1lR5aQpS0lXOVqzoUS4=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-25CoBVIofOCBy8ChMesIKaGoluwpy8tYo+zaFLSaiEo=";
|
||||
|
||||
# cargoPatches = [ ./Cargo.lock.patch ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
gdk-pixbuf
|
||||
] ++ lib.optional withWayland gtk-layer-shell;
|
||||
|
||||
buildNoDefaultFeatures = withWayland;
|
||||
buildFeatures = lib.optional withWayland "wayland";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--bin"
|
||||
"eww"
|
||||
];
|
||||
|
||||
cargoTestFlags = cargoBuildFlags;
|
||||
|
||||
# requires unstable rust features
|
||||
RUSTC_BOOTSTRAP = 1;
|
||||
|
||||
meta = with lib; {
|
||||
description = "ElKowars wacky widgets";
|
||||
homepage = "https://github.com/elkowar/eww";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [
|
||||
figsoda
|
||||
lom
|
||||
];
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-credential-keepassxc";
|
||||
version = "0.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "frederick888";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-BmjGxDqX8j/69Uo8jjWtcJcxNHxI7S5+eZQMApdybq0=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-gXW08plJRE1Q6W+Dc2y+gu2R+KBRs3fBG1umdawDduA=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Helper that allows Git (and shell scripts) to use KeePassXC as credential store";
|
||||
homepage = "https://github.com/frederick888/git-credential-keepassxc";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromSourcehut,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
wlroots,
|
||||
wayland,
|
||||
wayland-protocols,
|
||||
libX11,
|
||||
libGL,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "glpaper";
|
||||
version = "unstable-latest";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~scoopta";
|
||||
repo = pname;
|
||||
vc = "hg";
|
||||
rev = "9ba3806561312d83ed66dc8583c36d70fda8cd7a";
|
||||
sha256 = "sha256-//IKW2BfpqwcR2WAPShs0kzn5nkV/yyABPvOYm3zMPU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
wayland
|
||||
libX11 # required by libglvnd
|
||||
libGL
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Wallpaper program for wlroots based Wayland compositors such as sway that allows you to render glsl shaders as your wallpaper";
|
||||
homepage = "https://hg.sr.ht/~scoopta/glpaper";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ccellado ];
|
||||
};
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
gnome-themes-extra,
|
||||
gtk-engine-murrine,
|
||||
gtk_engines,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gruvbox-gtk-theme";
|
||||
version = "unstable-2023-05-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Fausto-Korpsvart";
|
||||
repo = "Gruvbox-GTK-Theme";
|
||||
rev = "5927e8693a70619b45fbe3317c59f04f6e101943";
|
||||
sha256 = "sha256-zvByW7wqVl4A5bKlVsJOSmyqkJiaHvciwSit3K/FqRM=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gnome-themes-extra # adwaita engine for Gtk2
|
||||
gtk_engines # pixmap engine for Gtk2
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
gtk-engine-murrine # murrine engine for Gtk2
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/themes
|
||||
cp -a themes/Grubvox-Dark-B $out/share/themes/Gruvbox-Dark
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gruvbox-kvantum";
|
||||
version = "unstable-2023-02-06";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thefallnn";
|
||||
repo = "Gruvbox-Kvantum";
|
||||
rev = "b04c6b67a4228c2b980821a0f0531bfe122c4aac";
|
||||
sha256 = "sha256-hFqqd39lGEnikM8+4MXwnNmZvQzhKOjFThrqx3q2lbo=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
cp -a gruvbox-kvantum/ $out/
|
||||
sed -i 's/translucent_windows=true/translucent_windows=false/' $out/gruvbox-kvantum.kvconfig
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
unzip,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "headscale-ui";
|
||||
version = "2022.12.23.2-beta";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/gurucomputing/headscale-ui/releases/download/${version}/headscale-ui.zip";
|
||||
sha256 = "sha256-QF10la68Rl2t0K53CH63Qiq54ynkySQACdELorZF/cY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
||||
unpackCmd = "unzip headscale-ui.zip";
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir $out/
|
||||
cp -R . $out
|
||||
'';
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
socat - UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock |
|
||||
while read line
|
||||
do
|
||||
if [[ "$line" == activewindow* ]]; then
|
||||
pid="$(hyprctl activewindow | rg pid | cut -d' ' -f2)"
|
||||
if [[ -n $pid ]]; then
|
||||
dbus-send --system --dest=com.system76.Scheduler --type=method_call /com/system76/Scheduler com.system76.Scheduler.SetForegroundProcess uint32:$pid
|
||||
fi
|
||||
pid=""
|
||||
fi
|
||||
done
|
|
@ -1,52 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
stdenv,
|
||||
hyprland,
|
||||
ripgrep,
|
||||
socat,
|
||||
dbus,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hyprland-system76-scheduler-integration";
|
||||
version = "0.1.0";
|
||||
|
||||
nativeBuildInputs = [
|
||||
socat
|
||||
dbus
|
||||
hyprland
|
||||
ripgrep
|
||||
];
|
||||
|
||||
dontUnpack = "true";
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
|
||||
cat <<EOF > $out/bin/hyprland-system76-scheduler-hook.sh
|
||||
#!${pkgs.bash}/bin/bash
|
||||
echo "opening socket.."
|
||||
${pkgs.socat}/bin/socat -u UNIX-CLIENT:/tmp/hypr/\''$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock STDOUT |
|
||||
while read line; do
|
||||
if [[ "\''$line" == activewindow* ]]; then
|
||||
echo "got \''$line."
|
||||
pid="\''$(${pkgs.hyprland}/bin/hyprctl activewindow | ${pkgs.ripgrep}/bin/rg pid | ${pkgs.coreutils}/bin/cut -d' ' -f2)"
|
||||
if [[ -n \''$pid ]]; then
|
||||
echo "sending \''$pid!"
|
||||
${pkgs.dbus}/bin/dbus-send --system --dest=com.system76.Scheduler --type=method_call /com/system76/Scheduler com.system76.Scheduler.SetForegroundProcess uint32:\''$pid
|
||||
fi
|
||||
pid=""
|
||||
fi
|
||||
echo "continuing.."
|
||||
done
|
||||
echo "finished."
|
||||
EOF
|
||||
chmod +x $out/bin/hyprland-system76-scheduler-hook.sh
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
gnome-themes-extra,
|
||||
gtk-engine-murrine,
|
||||
gtk_engines,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kanagawa-icons";
|
||||
version = "unstable-2023-05-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Fausto-Korpsvart";
|
||||
repo = "Kanagawa-GKT-Theme";
|
||||
rev = "7b8ece4382533491e82f9b3d5552607f67a79999";
|
||||
sha256 = "sha256-Jtu04SKXk0wFRvx2Duz0YxHEWJ2sM8ZIT+dtdJqKykY=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gnome-themes-extra # adwaita engine for Gtk2
|
||||
gtk_engines # pixmap engine for Gtk2
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
gtk-engine-murrine # murrine engine for Gtk2
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/icons
|
||||
cp -a icons/Kanagawa $out/share/icons/Kanagawa
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
gnome-themes-extra,
|
||||
gtk-engine-murrine,
|
||||
gtk_engines,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kanagawa-gtk-theme";
|
||||
version = "unstable-2023-05-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Fausto-Korpsvart";
|
||||
repo = "Kanagawa-GKT-Theme";
|
||||
rev = "7b8ece4382533491e82f9b3d5552607f67a79999";
|
||||
sha256 = "sha256-Jtu04SKXk0wFRvx2Duz0YxHEWJ2sM8ZIT+dtdJqKykY=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gnome-themes-extra # adwaita engine for Gtk2
|
||||
gtk_engines # pixmap engine for Gtk2
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
gtk-engine-murrine # murrine engine for Gtk2
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/themes
|
||||
cp -a themes/Kanagawa-B $out/share/themes/Kanagawa
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
dbus,
|
||||
qt5,
|
||||
qtbase,
|
||||
wrapQtAppsHook,
|
||||
kpackage,
|
||||
kcoreaddons,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kwin-system76-scheduler-integration";
|
||||
version = "0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maxiberta";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-HX0nK1p97kqt+ZZuECm7Mg9aAXaFDnsJDkbcLUEU+p0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapQtAppsHook
|
||||
kpackage
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
qt5.qttools.bin
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
kpackagetool5 --type=KWin/Script -i . -p $out/share/kwin/scripts
|
||||
|
||||
cat <<EOF > $out/bin/kwin-system76-scheduler-dbus-proxy.sh
|
||||
#!${pkgs.bash}/bin/bash
|
||||
DBUS_SERVICE="com.system76.Scheduler"
|
||||
DBUS_PATH="/com/system76/Scheduler"
|
||||
DBUS_INTERFACE="com.system76.Scheduler"
|
||||
DBUS_METHOD="SetForegroundProcess"
|
||||
echo "starting dbus proxy.."
|
||||
echo \''$DBUS_SERVICE \''$DBUS_PATH \''$DBUS_INTERFACE \''$DBUS_METHOD
|
||||
${pkgs.dbus}/bin/dbus-monitor --session "destination=\''$DBUS_SERVICE,path=\''$DBUS_PATH,interface=\''$DBUS_INTERFACE,member=\''$DBUS_METHOD" |
|
||||
while true; do
|
||||
read method call time sender _ dest serial path interface member
|
||||
read type pid
|
||||
[ "\''$member" = "member=\''$DBUS_METHOD" ] && ${pkgs.libsForQt5.qt5.qttools.bin}/bin/qdbus --system \''$DBUS_SERVICE \''$DBUS_PATH \''$DBUS_INTERFACE.\''$DBUS_METHOD \''$pid && echo "new foreground process: \''$pid"
|
||||
done
|
||||
EOF
|
||||
|
||||
chmod +x $out/bin/kwin-system76-scheduler-dbus-proxy.sh
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
linux-pam,
|
||||
pkg-config,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "lemurs";
|
||||
version = "0.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coastalwhite";
|
||||
repo = pname;
|
||||
rev = "60fda2a";
|
||||
sha256 = "sha256-mQXavJULD5iyOnzj72xTV0EQ1HQvj25SHsbDgfRg4lQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ linux-pam ];
|
||||
|
||||
cargoSha256 = "sha256-OCaIeQB8reK0089vbC+4IvQt5pKdZ2SCyyGuQEYWzjo=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A customizable TUI display/login manager written in Rust";
|
||||
homepage = "https://git.atagen.co/coastalwhite/lemurs";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
linux-pam,
|
||||
libxcb,
|
||||
git,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ly";
|
||||
version = "0.5.0+";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fairyglade";
|
||||
repo = pname;
|
||||
rev = "c64f806a68af225cc95623971b5e464abb55b879";
|
||||
sha256 = "sha256-orCqjKlK6U1q7NDoMwxZZE44cyG8yuxdCCk1cQAalP0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ git ];
|
||||
buildInputs = [
|
||||
linux-pam
|
||||
libxcb
|
||||
];
|
||||
makeFlags = [ "FLAGS=-Wno-error=unused-result" ];
|
||||
|
||||
preBuildPhase = ''
|
||||
mkdir -p ./data
|
||||
export DESTDIR="$PWD"
|
||||
export DATADIR="$PWD/data"
|
||||
'';
|
||||
buildPhase = ''
|
||||
make -j16
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp bin/ly $out/bin
|
||||
mkdir -p $out/etc/ly
|
||||
cp -R ./data/* $out/etc/ly
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "TUI display manager";
|
||||
license = licenses.wtfpl;
|
||||
homepage = "https://github.com/fairyglade/ly";
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
docutils,
|
||||
lxml,
|
||||
pytestCheckHook,
|
||||
wcag-contrast-ratio,
|
||||
}:
|
||||
let
|
||||
pygments = buildPythonPackage rec {
|
||||
pname = "pygments";
|
||||
version = "2.15.1";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "Pygments";
|
||||
inherit version;
|
||||
sha256 = "sha256-is5NPB3UgYlLIAX1YOrQ+fGe5k/pgzZr4aIeFx0Sd1w=";
|
||||
};
|
||||
|
||||
format = "egg";
|
||||
|
||||
propagatedBuildInputs = [
|
||||
docutils
|
||||
];
|
||||
|
||||
# circular dependencies if enabled by default
|
||||
doCheck = false;
|
||||
checkInputs = [
|
||||
lxml
|
||||
pytestCheckHook
|
||||
wcag-contrast-ratio
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# 5 lines diff, including one nix store path in 20000+ lines
|
||||
"tests/examplefiles/bash/ltmain.sh"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pygments" ];
|
||||
|
||||
passthru.tests = {
|
||||
check = pygments.overridePythonAttrs (_: {
|
||||
doCheck = true;
|
||||
});
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://pygments.org/";
|
||||
description = "A generic syntax highlighter";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
};
|
||||
};
|
||||
in
|
||||
pygments
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
gnome-themes-extra,
|
||||
gtk-engine-murrine,
|
||||
gtk_engines,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rose-pine-icons";
|
||||
version = "unstable-2023-05-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Fausto-Korpsvart";
|
||||
repo = "Rose-Pine-GTK-Theme";
|
||||
rev = "95aa1f2b2cc30495b1fc5b614dc555b3eef0e27d";
|
||||
sha256 = "sha256-I9UnEhXdJ+HSMFE6R+PRNN3PT6ZAAzqdtdQNQWt7o4Y=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gnome-themes-extra # adwaita engine for Gtk2
|
||||
gtk_engines # pixmap engine for Gtk2
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
gtk-engine-murrine # murrine engine for Gtk2
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/icons
|
||||
cp -a icons/Rose-Pine $out/share/icons/Rose-Pine
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
gnome-themes-extra,
|
||||
gtk-engine-murrine,
|
||||
gtk_engines,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rose-pine-gtk-theme";
|
||||
version = "unstable-2023-05-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Fausto-Korpsvart";
|
||||
repo = "Rose-Pine-GTK-Theme";
|
||||
rev = "95aa1f2b2cc30495b1fc5b614dc555b3eef0e27d";
|
||||
sha256 = "sha256-I9UnEhXdJ+HSMFE6R+PRNN3PT6ZAAzqdtdQNQWt7o4Y=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gnome-themes-extra # adwaita engine for Gtk2
|
||||
gtk_engines # pixmap engine for Gtk2
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
gtk-engine-murrine # murrine engine for Gtk2
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/themes
|
||||
cp -a themes/RosePine-Main-B $out/share/themes/RosePine-Main
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
stdenvNoCC,
|
||||
lib,
|
||||
fetchFromGitea,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "Simplewaita";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "git.disroot.org";
|
||||
owner = "eudaimon";
|
||||
repo = pname;
|
||||
rev = "16c5f75fd3e03671c3998dcb9a67e3ff6da5a538";
|
||||
hash = "sha256-VvPQGsdikfIi3VG5Mh8FcioTVwXaxKxaSf2X+yWJckA=";
|
||||
};
|
||||
|
||||
dontPatch = true;
|
||||
dontConfigure = true;
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp -r ./ $out
|
||||
'';
|
||||
dontBuild = true;
|
||||
dontFixup = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A mix of Skewaita and Simple. Or, more precisely: Skewaita Simple-ified.";
|
||||
homepage = "https://git.disroot.org/eudaimon/Simplewaita";
|
||||
license = licenses.gpl1Only;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
diff --git a/sway/main.c b/sway/main.c
|
||||
index 85bc2f1c..a2f76590 100644
|
||||
--- a/sway/main.c
|
||||
+++ b/sway/main.c
|
||||
@@ -50,41 +50,7 @@ void sig_handler(int signal) {
|
||||
}
|
||||
|
||||
void detect_proprietary(int allow_unsupported_gpu) {
|
||||
- FILE *f = fopen("/proc/modules", "r");
|
||||
- if (!f) {
|
||||
- return;
|
||||
- }
|
||||
- char *line = NULL;
|
||||
- size_t line_size = 0;
|
||||
- while (getline(&line, &line_size, f) != -1) {
|
||||
- if (strncmp(line, "nvidia ", 7) == 0) {
|
||||
- if (allow_unsupported_gpu) {
|
||||
- sway_log(SWAY_ERROR,
|
||||
- "!!! Proprietary Nvidia drivers are in use !!!");
|
||||
- } else {
|
||||
- sway_log(SWAY_ERROR,
|
||||
- "Proprietary Nvidia drivers are NOT supported. "
|
||||
- "Use Nouveau. To launch sway anyway, launch with "
|
||||
- "--unsupported-gpu and DO NOT report issues.");
|
||||
- exit(EXIT_FAILURE);
|
||||
- }
|
||||
- break;
|
||||
- }
|
||||
- if (strstr(line, "fglrx")) {
|
||||
- if (allow_unsupported_gpu) {
|
||||
- sway_log(SWAY_ERROR,
|
||||
- "!!! Proprietary AMD drivers are in use !!!");
|
||||
- } else {
|
||||
- sway_log(SWAY_ERROR, "Proprietary AMD drivers do NOT support "
|
||||
- "Wayland. Use radeon. To try anyway, launch sway with "
|
||||
- "--unsupported-gpu and DO NOT report issues.");
|
||||
- exit(EXIT_FAILURE);
|
||||
- }
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- free(line);
|
||||
- fclose(f);
|
||||
+ return;
|
||||
}
|
||||
|
||||
void run_as_ipc_client(char *command, char *socket_path) {
|
|
@ -1,278 +0,0 @@
|
|||
[ActionPlugins][1]
|
||||
RightButton;NoModifier=org.kde.latte.contextmenu
|
||||
|
||||
[Containments][1]
|
||||
activityId=
|
||||
byPassWM=false
|
||||
dockWindowBehavior=true
|
||||
enableKWinEdges=true
|
||||
formfactor=2
|
||||
immutability=1
|
||||
isPreferredForShortcuts=false
|
||||
lastScreen=-1
|
||||
layoutId=
|
||||
location=4
|
||||
name=Default Dock
|
||||
onPrimary=true
|
||||
plugin=org.kde.latte.containment
|
||||
raiseOnActivityChange=false
|
||||
raiseOnDesktopChange=false
|
||||
timerHide=700
|
||||
timerShow=200
|
||||
viewType=0
|
||||
visibility=2
|
||||
wallpaperplugin=org.kde.image
|
||||
|
||||
[Containments][1][Applets][2]
|
||||
immutability=1
|
||||
plugin=org.kde.latte.plasmoid
|
||||
|
||||
[Containments][1][Applets][2][Configuration]
|
||||
PreloadWeight=0
|
||||
|
||||
[Containments][1][Applets][2][Configuration][General]
|
||||
isInLatteDock=true
|
||||
launchers59=applications:firefox.desktop,applications:org.kde.dolphin.desktop
|
||||
|
||||
[Containments][1][Applets][3]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.analogclock
|
||||
|
||||
[Containments][1][Applets][3][Configuration]
|
||||
PreloadWeight=0
|
||||
|
||||
[Containments][1][ConfigDialog]
|
||||
DialogHeight=600
|
||||
DialogWidth=586
|
||||
|
||||
[Containments][1][Configuration]
|
||||
PreloadWeight=0
|
||||
|
||||
[Containments][1][General]
|
||||
advanced=false
|
||||
alignmentUpgraded=true
|
||||
appletOrder=2;3
|
||||
configurationSticker=true
|
||||
panelSize=10
|
||||
shadowOpacity=60
|
||||
shadowSize=45
|
||||
shadows=All
|
||||
shadowsUpgraded=true
|
||||
showGlow=false
|
||||
tasksUpgraded=true
|
||||
titleTooltips=false
|
||||
zoomLevel=17
|
||||
|
||||
[Containments][1][Indicator]
|
||||
customType=
|
||||
enabled=true
|
||||
type=org.kde.latte.default
|
||||
|
||||
[Containments][17]
|
||||
PreloadWeight=0
|
||||
activityId=
|
||||
formfactor=2
|
||||
immutability=1
|
||||
lastScreen=11
|
||||
layoutId=
|
||||
location=3
|
||||
plugin=org.kde.plasma.private.systemtray
|
||||
wallpaperplugin=org.kde.image
|
||||
|
||||
[Containments][17][Applets][122]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.manage-inputmethod
|
||||
|
||||
[Containments][17][Applets][123]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.keyboardlayout
|
||||
|
||||
[Containments][17][Applets][88]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.notifications
|
||||
|
||||
[Containments][17][Applets][89]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.battery
|
||||
|
||||
[Containments][17][Applets][90]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.printmanager
|
||||
|
||||
[Containments][17][Applets][91]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.volume
|
||||
|
||||
[Containments][17][Applets][92]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.nightcolorcontrol
|
||||
|
||||
[Containments][17][Applets][93]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.keyboardindicator
|
||||
|
||||
[Containments][17][Applets][94]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.networkmanagement
|
||||
|
||||
[Containments][17][Applets][95]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.clipboard
|
||||
|
||||
[Containments][17][Applets][96]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.bluetooth
|
||||
|
||||
[Containments][17][Applets][97]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.devicenotifier
|
||||
|
||||
[Containments][17][Applets][98]
|
||||
immutability=1
|
||||
plugin=org.kde.kdeconnect
|
||||
|
||||
[Containments][17][ConfigDialog]
|
||||
DialogHeight=1025
|
||||
DialogWidth=963
|
||||
|
||||
[Containments][17][Configuration]
|
||||
PreloadWeight=26
|
||||
|
||||
[Containments][17][General]
|
||||
extraItems=org.kde.plasma.manage-inputmethod,org.kde.plasma.notifications,org.kde.plasma.devicenotifier,org.kde.plasma.clipboard,org.kde.plasma.mediacontroller,org.kde.plasma.battery,org.kde.kdeconnect,org.kde.plasma.keyboardlayout,org.kde.plasma.keyboardindicator,org.kde.plasma.volume,org.kde.plasma.networkmanagement,org.kde.plasma.printmanager,org.kde.plasma.nightcolorcontrol
|
||||
knownItems=org.kde.plasma.manage-inputmethod,org.kde.plasma.notifications,org.kde.plasma.devicenotifier,org.kde.plasma.clipboard,org.kde.plasma.mediacontroller,org.kde.plasma.battery,org.kde.kdeconnect,org.kde.plasma.keyboardlayout,org.kde.plasma.keyboardindicator,org.kde.plasma.volume,org.kde.plasma.networkmanagement,org.kde.plasma.printmanager,org.kde.plasma.nightcolorcontrol
|
||||
|
||||
[Containments][19]
|
||||
activityId=
|
||||
byPassWM=false
|
||||
dockWindowBehavior=true
|
||||
enableKWinEdges=true
|
||||
formfactor=2
|
||||
immutability=1
|
||||
isPreferredForShortcuts=false
|
||||
lastScreen=11
|
||||
layoutId=
|
||||
location=3
|
||||
maxLength=100
|
||||
name=Default Panel
|
||||
onPrimary=true
|
||||
plugin=org.kde.latte.containment
|
||||
raiseOnActivityChange=false
|
||||
raiseOnDesktopChange=false
|
||||
settingsComplexity=4
|
||||
timerHide=700
|
||||
timerShow=200
|
||||
viewType=0
|
||||
visibility=0
|
||||
wallpaperplugin=org.kde.image
|
||||
|
||||
[Containments][19][Applets][112]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.kickoff
|
||||
|
||||
[Containments][19][Applets][112][Configuration][General]
|
||||
favoritesPortedToKAstats=true
|
||||
|
||||
[Containments][19][Applets][113]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.digitalclock
|
||||
|
||||
[Containments][19][Applets][114]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.systemtray
|
||||
|
||||
[Containments][19][Applets][114][Configuration]
|
||||
PreloadWeight=100
|
||||
SystrayContainmentId=17
|
||||
|
||||
[Containments][19][Applets][115]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.pager
|
||||
|
||||
[Containments][19][Applets][116]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.marginsseparator
|
||||
|
||||
[Containments][19][Applets][124]
|
||||
immutability=1
|
||||
plugin=org.kde.windowtitle
|
||||
|
||||
[Containments][19][Applets][124][Configuration][General]
|
||||
containmentType=Latte
|
||||
|
||||
[Containments][19][Applets][125]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.lock_logout
|
||||
|
||||
[Containments][19][Applets][126]
|
||||
immutability=1
|
||||
plugin=org.kde.plasma.marginsseparator
|
||||
|
||||
[Containments][19][ConfigDialog]
|
||||
DialogHeight=1254
|
||||
DialogWidth=529
|
||||
|
||||
[Containments][19][Configuration]
|
||||
PreloadWeight=0
|
||||
|
||||
[Containments][19][General]
|
||||
advanced=true
|
||||
alignment=10
|
||||
alignmentUpgraded=true
|
||||
appletOrder=112;124;115;116;114;113;126;125
|
||||
appletShadowsEnabled=false
|
||||
autoDecreaseIconSize=false
|
||||
backgroundRadius=0
|
||||
backgroundShadowSize=0
|
||||
blurEnabled=false
|
||||
configurationSticker=true
|
||||
dragActiveWindowEnabled=true
|
||||
floatingInternalGapIsForced=false
|
||||
iconSize=24
|
||||
inConfigureAppletsMode=true
|
||||
lockedZoomApplets=112;113
|
||||
mouseWheelActions=false
|
||||
panelPosition=10
|
||||
panelShadows=false
|
||||
panelSize=100
|
||||
plasmaBackgroundForPopups=true
|
||||
screenEdgeMargin=0
|
||||
shadowOpacity=25
|
||||
shadows=None
|
||||
shadowsUpgraded=true
|
||||
splitterPosition=2
|
||||
splitterPosition2=4
|
||||
taskScrollAction=ScrollNone
|
||||
tasksUpgraded=true
|
||||
thickMargin=11
|
||||
titleTooltips=false
|
||||
zoomLevel=0
|
||||
|
||||
[Containments][19][Indicator]
|
||||
customType=org.kde.latte.unity
|
||||
enabled=true
|
||||
enabledForApplets=true
|
||||
padding=0.09000000357627869
|
||||
type=org.kde.latte.default
|
||||
|
||||
[Containments][19][Indicator][org.kde.latte.default][General]
|
||||
lengthPadding=0.3
|
||||
reversed=true
|
||||
|
||||
[Containments][19][Indicator][org.kde.latte.plasma][General]
|
||||
lengthPadding=0.19
|
||||
|
||||
[LayoutSettings]
|
||||
activities=
|
||||
backgroundStyle=0
|
||||
color=blue
|
||||
customBackground=
|
||||
customTextColor=
|
||||
icon=
|
||||
lastUsedActivity=
|
||||
launchers=
|
||||
popUpMargin=-1
|
||||
preferredForShortcutsTouched=false
|
||||
schemeFile=
|
||||
showInMenu=true
|
||||
version=2
|
|
@ -1,63 +0,0 @@
|
|||
# nvidia-settings: X configuration file generated by nvidia-settings
|
||||
# nvidia-settings: version 515.48.07
|
||||
|
||||
Section "ServerLayout"
|
||||
Identifier "Layout0"
|
||||
Screen 0 "Screen0" 0 0
|
||||
InputDevice "Keyboard0" "CoreKeyboard"
|
||||
InputDevice "Mouse0" "CorePointer"
|
||||
Option "Xinerama" "0"
|
||||
EndSection
|
||||
|
||||
Section "Files"
|
||||
EndSection
|
||||
|
||||
Section "InputDevice"
|
||||
# generated from default
|
||||
Identifier "Mouse0"
|
||||
Driver "mouse"
|
||||
Option "Protocol" "auto"
|
||||
Option "Device" "/dev/input/mice"
|
||||
Option "Emulate3Buttons" "no"
|
||||
Option "ZAxisMapping" "4 5"
|
||||
EndSection
|
||||
|
||||
Section "InputDevice"
|
||||
# generated from default
|
||||
Identifier "Keyboard0"
|
||||
Driver "kbd"
|
||||
EndSection
|
||||
|
||||
Section "Monitor"
|
||||
# HorizSync source: edid, VertRefresh source: edid
|
||||
Identifier "Monitor0"
|
||||
VendorName "Unknown"
|
||||
ModelName "LG Electronics W2343"
|
||||
HorizSync 30.0 - 83.0
|
||||
VertRefresh 56.0 - 75.0
|
||||
Option "DPMS"
|
||||
EndSection
|
||||
|
||||
Section "Device"
|
||||
Identifier "Device0"
|
||||
Driver "nvidia"
|
||||
VendorName "NVIDIA Corporation"
|
||||
BoardName "NVIDIA GeForce GTX 1070"
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "Screen0"
|
||||
Device "Device0"
|
||||
Monitor "Monitor0"
|
||||
DefaultDepth 24
|
||||
Option "Stereo" "0"
|
||||
Option "nvidiaXineramaInfoOrder" "DFP-0"
|
||||
Option "metamodes" "DVI-D-0: nvidia-auto-select +1050+265, HDMI-0: nvidia-auto-select +0+0 {rotation=left}"
|
||||
Option "SLI" "Off"
|
||||
Option "MultiGPU" "Off"
|
||||
Option "BaseMosaic" "off"
|
||||
SubSection "Display"
|
||||
Depth 24
|
||||
EndSubSection
|
||||
EndSection
|
||||
|
|
@ -10,7 +10,13 @@ let
|
|||
inherit (nixpkgs) lib;
|
||||
kitty-themes-src = { };
|
||||
};
|
||||
rice = import ./rice.nix { inherit system nixpkgs nix-rice; };
|
||||
rice = import ./rice {
|
||||
inherit
|
||||
inputs
|
||||
system
|
||||
nix-rice
|
||||
;
|
||||
};
|
||||
in
|
||||
{
|
||||
systems =
|
||||
|
@ -20,12 +26,12 @@ in
|
|||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit inputs rice nix-rice;
|
||||
inherit inputs rice;
|
||||
mainUser = info.user;
|
||||
};
|
||||
modules =
|
||||
[
|
||||
../system/${name}.nix
|
||||
./system/${name}.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
|
@ -35,7 +41,7 @@ in
|
|||
mainUser = info.user;
|
||||
};
|
||||
users.${info.user}.imports = [
|
||||
../home/${info.user}.nix
|
||||
./home/${info.user}.nix
|
||||
] ++ info.hmImports or [ ];
|
||||
};
|
||||
}
|
700
flake.lock
generated
700
flake.lock
generated
File diff suppressed because it is too large
Load diff
83
flake.nix
83
flake.nix
|
@ -1,6 +1,39 @@
|
|||
{
|
||||
description = "nixos config";
|
||||
|
||||
outputs =
|
||||
inputs:
|
||||
with inputs;
|
||||
let
|
||||
modules = import ./util/get-modules.nix {
|
||||
inherit inputs;
|
||||
};
|
||||
create = import ./create.nix {
|
||||
inherit inputs;
|
||||
system = "x86_64-linux";
|
||||
sharedModules =
|
||||
(modules [
|
||||
culr
|
||||
meat
|
||||
niri
|
||||
# smooooth
|
||||
])
|
||||
++ [
|
||||
nix-index-database.nixosModules.nix-index
|
||||
./system/substituters.nix
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = create.systems {
|
||||
quiver = {
|
||||
user = "bolt";
|
||||
imports = (modules [ nyx ]);
|
||||
};
|
||||
adrift.user = "plank";
|
||||
};
|
||||
};
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||
|
@ -18,10 +51,6 @@
|
|||
|
||||
nil.url = "github:oxalica/nil";
|
||||
|
||||
madness.url = "github:antithesishq/madness";
|
||||
|
||||
nh.url = "github:viperML/nh";
|
||||
|
||||
lix = {
|
||||
url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz";
|
||||
flake = false;
|
||||
|
@ -37,7 +66,6 @@
|
|||
url = "git+https://git.atagen.co/atagen/meat";
|
||||
inputs.lix.follows = "lix";
|
||||
inputs.lix-module.follows = "lix-module";
|
||||
inputs.nh.follows = "nh";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
|
@ -56,46 +84,23 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
niri = {
|
||||
url = "github:sodiboo/niri-flake";
|
||||
};
|
||||
|
||||
ironbar.url = "github:JakeStanger/ironbar";
|
||||
|
||||
nix-vscode.url = "github:nix-community/nix-vscode-extensions";
|
||||
niri.url = "github:sodiboo/niri-flake";
|
||||
|
||||
hjem = {
|
||||
url = "github:feel-co/hjem";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
cachyos.url = "github:drakon64/nixos-cachyos-kernel";
|
||||
hudcore.url = "git+https://git.atagen.co/atagen/hudcore-plymouth.git";
|
||||
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/quickshell/quickshell.git";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nyx.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
|
||||
# smooooth.url = "path:/home/bolt/code/smooooth";
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs:
|
||||
with inputs;
|
||||
let
|
||||
create = import ./util/create.nix {
|
||||
inherit inputs;
|
||||
system = "x86_64-linux";
|
||||
sharedModules = [
|
||||
culr.nixosModules.culr
|
||||
meat.nixosModules.meat
|
||||
madness.nixosModules.madness
|
||||
niri.nixosModules.niri
|
||||
nix-index-database.nixosModules.nix-index
|
||||
./system/cachix.nix
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = create.systems {
|
||||
quiver = {
|
||||
user = "bolt";
|
||||
imports = [ cachyos.nixosModules.default ];
|
||||
};
|
||||
adrift.user = "plank";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
41
flakes/niri-session-manager/flake.lock
generated
Normal file
41
flakes/niri-session-manager/flake.lock
generated
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1749285348,
|
||||
"narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
|
||||
"path": "/nix/store/syvnmj3hhckkbncm94kfkbl76qsdqqj3-source",
|
||||
"rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"src": "src"
|
||||
}
|
||||
},
|
||||
"src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1741050520,
|
||||
"narHash": "sha256-bTOxv5yZh6wgCs7ADUFKdlXGtlIckkSijGV8G7ToVy4=",
|
||||
"owner": "MTeaHead",
|
||||
"repo": "niri-session-manager",
|
||||
"rev": "e8732380991bd629a7e6c3fb5ea50317084fb1eb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "MTeaHead",
|
||||
"repo": "niri-session-manager",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
66
flakes/niri-session-manager/flake.nix
Normal file
66
flakes/niri-session-manager/flake.nix
Normal file
|
@ -0,0 +1,66 @@
|
|||
{
|
||||
inputs = {
|
||||
src = {
|
||||
url = "github:MTeaHead/niri-session-manager";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
nixpkgs,
|
||||
src,
|
||||
self,
|
||||
}:
|
||||
{
|
||||
packages.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.rustPlatform.callPackage (
|
||||
{ pkgs, buildRustPackage }:
|
||||
buildRustPackage (finalAttrs: {
|
||||
pname = "niri-session-manager";
|
||||
version = "git-${src.rev or src.dirtyRev or "dirty"}";
|
||||
inherit src;
|
||||
|
||||
cargoLock = {
|
||||
lockFile = "${src}/Cargo.lock";
|
||||
};
|
||||
|
||||
meta.mainProgram = "niri-session-manager";
|
||||
})
|
||||
) { };
|
||||
|
||||
nixosModules.niri-session-manager =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options = {
|
||||
services.niri-session-manager = {
|
||||
enable = lib.mkEnableOption "Niri Session Manager";
|
||||
};
|
||||
};
|
||||
config =
|
||||
let
|
||||
cfg = config.services.niri-session-manager;
|
||||
in
|
||||
lib.mkIf cfg.enable {
|
||||
systemd.user.services.niri-session-manager = {
|
||||
enable = true;
|
||||
description = "Niri Session Manager";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
partOf = [ "graphical-session.target" ];
|
||||
wants = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
Restart = "always";
|
||||
ExecStart = "${self.packages.${pkgs.system}.default}";
|
||||
PrivateTmp = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
1
flakes/niri-session-manager/result
Symbolic link
1
flakes/niri-session-manager/result
Symbolic link
|
@ -0,0 +1 @@
|
|||
/nix/store/731lnc1qjhq5gcrvmqycbm41r2ga3dqa-niri-session-manager-git-e8732380991bd629a7e6c3fb5ea50317084fb1eb
|
|
@ -1,36 +1,15 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
mainUser,
|
||||
...
|
||||
}:
|
||||
{
|
||||
inherit mainUser;
|
||||
|
||||
imports = [
|
||||
./home.nix
|
||||
# ./util/local-webapp.nix
|
||||
# ./util/containers.nix
|
||||
# ./programs/stable-diffusion.nix
|
||||
inputs.comfyui.homeManagerModules.comfyui
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
nicotine-plus
|
||||
];
|
||||
|
||||
programs.comfyui = {
|
||||
enable = false;
|
||||
storage = "/home/${config.mainUser}/.local/share/comfyui/";
|
||||
plugins =
|
||||
let
|
||||
inherit (pkgs.comfyui-plugins) gguf openpose;
|
||||
in
|
||||
[
|
||||
gguf
|
||||
# essentials
|
||||
openpose
|
||||
];
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs) nicotine-plus;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
./util/ez.nix
|
||||
./util/name.nix
|
||||
inputs.nix-index-database.hmModules.nix-index
|
||||
inputs.ironbar.homeManagerModules.default
|
||||
];
|
||||
|
||||
nix.gc = {
|
||||
|
@ -52,8 +51,14 @@
|
|||
home.packages =
|
||||
let
|
||||
inherit (rice) icons fonts cursor;
|
||||
inherit (pkgs) tauon;
|
||||
in
|
||||
fonts.pkgs ++ icons.pkgs ++ [ cursor.package ];
|
||||
fonts.pkgs
|
||||
++ icons.pkgs
|
||||
++ [
|
||||
cursor.package
|
||||
tauon
|
||||
];
|
||||
|
||||
systemd.user.targets.tray = {
|
||||
Unit = {
|
||||
|
@ -90,7 +95,7 @@
|
|||
# programs.nix-index.enable = true;
|
||||
|
||||
systemd.user.startServices = "sd-switch";
|
||||
# ezServices = {
|
||||
# ckb-next = "${getExe pkgs.ckb-next} -c -b";
|
||||
# };
|
||||
ezServices = {
|
||||
ckb-next = "${lib.getExe pkgs.ckb-next} -c -b";
|
||||
};
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 16 KiB |
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 103 KiB |
|
@ -5,16 +5,18 @@
|
|||
# ../programs/zsh.nix
|
||||
# ../programs/xresources.nix
|
||||
../programs/helix.nix
|
||||
../programs/atuin.nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
btop
|
||||
bat
|
||||
ripgrep
|
||||
fd
|
||||
lazygit
|
||||
zoxide
|
||||
zellij
|
||||
ouch
|
||||
# ../programs/atuin.nix
|
||||
];
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
btop
|
||||
bat
|
||||
ripgrep
|
||||
fd
|
||||
lazygit
|
||||
zoxide
|
||||
zellij
|
||||
ouch
|
||||
;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,151 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) range mapAttrsToList;
|
||||
inherit (builtins) toString;
|
||||
workspaceRange = range 1 6;
|
||||
makeWorkspaceBinding =
|
||||
modifiers: action:
|
||||
map (i: {
|
||||
inherit modifiers;
|
||||
key = toString i;
|
||||
action = {
|
||||
type = action;
|
||||
data = i;
|
||||
};
|
||||
}) workspaceRange;
|
||||
focusWsBindings = makeWorkspaceBinding [ "Super" ] "Workspace";
|
||||
moveWsBindings = makeWorkspaceBinding [ "Super" "Shift" ] "SendToWorkspace";
|
||||
|
||||
hjkl = {
|
||||
"h" = "Left";
|
||||
"j" = "Down";
|
||||
"k" = "Up";
|
||||
"l" = "Right";
|
||||
# "i" = "In";
|
||||
# "u" = "Out";
|
||||
};
|
||||
makeDirBinding =
|
||||
modifiers: action:
|
||||
mapAttrsToList (key: dir: {
|
||||
inherit key modifiers;
|
||||
action = {
|
||||
type = action;
|
||||
data = dir;
|
||||
};
|
||||
}) hjkl;
|
||||
focusBindings = makeDirBinding [ "Super" ] "Focus";
|
||||
moveBindings = makeDirBinding [ "Super" "Shift" ] "Move";
|
||||
winManagementBindings = focusWsBindings ++ moveWsBindings ++ focusBindings ++ moveBindings;
|
||||
binding = key: modifiers: action: {
|
||||
inherit key modifiers action;
|
||||
};
|
||||
spawnBinding = key: modifiers: app: {
|
||||
inherit key modifiers;
|
||||
action = {
|
||||
type = "Spawn";
|
||||
data = app;
|
||||
};
|
||||
};
|
||||
systemBinding = key: modifiers: action: {
|
||||
inherit key modifiers;
|
||||
action = {
|
||||
type = "System";
|
||||
data = action;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../util/cosmic.nix
|
||||
];
|
||||
config.cosmic = {
|
||||
enable = true;
|
||||
defaultKeybindings = false;
|
||||
keybindings = winManagementBindings ++ [
|
||||
# System bindings appear broken?
|
||||
(binding "q" [ "Super" "Shift" ] "Close")
|
||||
(binding "w" [ "Super" ] "ToggleStacking")
|
||||
(binding "s" [ "Super" ] "ToggleOrientation")
|
||||
(binding "space" [ "Super" ] "ToggleWindowFloating")
|
||||
(binding "space" [ "Super" "Shift" ] "Maximize")
|
||||
(binding "minus" [ "Super" ] "Minimize")
|
||||
(binding "r" [ "Super" ] {
|
||||
type = "Resizing";
|
||||
data = "Outwards";
|
||||
})
|
||||
(binding "r" [ "Super" "Shift" ] {
|
||||
type = "Resizing";
|
||||
data = "Inwards";
|
||||
})
|
||||
(binding "tab" [ "Super" ] "NextOutput")
|
||||
(binding "tab" [ "Super" "Shift" ] "MoveToNextOutput")
|
||||
(binding "grave" [ "Super" ] "PreviousOutput")
|
||||
(binding "grave" [ "Super" "Shift" ] "MoveToPreviousOutput")
|
||||
(spawnBinding "equal" [ "Super" ] "keepassxc")
|
||||
(systemBinding "f" [ "Super" ] "WebBrowser")
|
||||
# my mime handling is fucked
|
||||
# (systemBinding "e" ["Super"] "HomeFolder")
|
||||
# (systemBinding "return" ["Super"] "Terminal")
|
||||
(spawnBinding "return" [ "Super" ] "kitty")
|
||||
# (systemBinding "s" ["Super" "Shift"] "Screenshot")
|
||||
(systemBinding null [ "Super" ] "Launcher")
|
||||
(systemBinding "d" [ "Super" ] "AppLibrary")
|
||||
(systemBinding "XF86AudioRaiseVolume" [ ] "VolumeRaise")
|
||||
(systemBinding "XF86AudioLowerVolume" [ ] "VolumeLower")
|
||||
(systemBinding "XF86AudioMute" [ ] "Mute")
|
||||
(spawnBinding "XF86AudioNext" [ ] "playerctl next")
|
||||
(spawnBinding "XF86AudioPrev" [ ] "playerctl previous")
|
||||
(spawnBinding "XF86AudioPlay" [ ] "playerctl play-pause")
|
||||
(spawnBinding "XF86AudioStop" [ ] "playerctl stop")
|
||||
(systemBinding "XF86MonBrightnessUp" [ ] "BrightnessUp")
|
||||
(systemBinding "XF86MonBrightnessDown" [ ] "BrightnessDown")
|
||||
(spawnBinding "e" [ "Super" "Shift" ] "wlogout")
|
||||
|
||||
# old, pre-System bindings
|
||||
# (binding "q" ["Super" "Shift"] "Close")
|
||||
# (binding "w" ["Super"] "ToggleStacking")
|
||||
# (binding "s" ["Super"] "ToggleOrientation")
|
||||
# (binding "space" ["Super"] "ToggleWindowFloating")
|
||||
# (binding "space" ["Super" "Shift"] "Maximize")
|
||||
# (binding "minus" ["Super"] "Minimize")
|
||||
# (binding "r" ["Super"] {
|
||||
# type = "Resizing";
|
||||
# data = "Outwards";
|
||||
# })
|
||||
# (binding "r" ["Super" "Shift"] {
|
||||
# type = "Resizing";
|
||||
# data = "Inwards";
|
||||
# })
|
||||
# (binding "tab" ["Super"] "NextOutput")
|
||||
# (binding "tab" ["Super" "Shift"] "MoveToNextOutput")
|
||||
# (binding "grave" ["Super"] "PreviousOutput")
|
||||
# (binding "grave" ["Super" "Shift"] "MoveToPreviousOutput")
|
||||
# (spawnBinding "f" ["Super"] "firefox")
|
||||
(spawnBinding "e" [ "Super" ] "nautilus")
|
||||
# (spawnBinding "equal" ["Super"] "keepassxc")
|
||||
# (spawnBinding "return" ["Super"] "kitty")
|
||||
(spawnBinding "s" [ "Super" "Shift" ] "cosmic-screenshot")
|
||||
# (spawnBinding null ["Super"] "cosmic-launcher")
|
||||
# (spawnBinding "d" ["Super"] "cosmic-app-library")
|
||||
# (spawnBinding "XF86AudioRaiseVolume" [] "amixer sset Master 5%+")
|
||||
# (spawnBinding "XF86AudioLowerVolume" [] "amixer sset Master 5%-")
|
||||
# (spawnBinding "XF86AudioMute" [] "amixer sset Master toggle")
|
||||
# (spawnBinding "XF86AudioNext" [] "playerctl next")
|
||||
# (spawnBinding "XF86AudioPrev" [] "playerctl previous")
|
||||
# (spawnBinding "XF86AudioPlay" [] "playerctl play-pause")
|
||||
# (spawnBinding "XF86AudioStop" [] "playerctl stop")
|
||||
# (
|
||||
# spawnBinding "XF86MonBrightnessUp" []
|
||||
# "busctl --user call com.system76.CosmicSettingsDaemon /com/system76/CosmicSettingsDaemon com.system76.CosmicSettingsDaemon IncreaseDisplayBrightness"
|
||||
# )
|
||||
# (
|
||||
# spawnBinding "XF86MonBrightnessDown" []
|
||||
# "busctl --user call com.system76.CosmicSettingsDaemon /com/system76/CosmicSettingsDaemon com.system76.CosmicSettingsDaemon DecreaseDisplayBrightness"
|
||||
# )
|
||||
# (spawnBinding "e" ["Super" "Shift"] "wlogout")
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./cosmic.nix
|
||||
./media-players.nix
|
||||
./webapps.nix
|
||||
./documents.nix
|
||||
|
@ -10,10 +9,12 @@
|
|||
../programs/firefox.nix
|
||||
../programs/wlogout.nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
file-roller
|
||||
nautilus
|
||||
thunderbird
|
||||
keepassxc
|
||||
];
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
file-roller
|
||||
nautilus
|
||||
thunderbird
|
||||
keepassxc
|
||||
;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@ let
|
|||
get = builtins.attrValues;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../programs/vscode.nix
|
||||
];
|
||||
# imports = [
|
||||
# ../programs/vscode.nix
|
||||
# ];
|
||||
|
||||
home.packages = get {
|
||||
inherit (pkgs)
|
||||
|
@ -66,7 +66,7 @@ in
|
|||
programs.git = {
|
||||
enable = true;
|
||||
userName = "atagen";
|
||||
userEmail = "atagen@boss.co";
|
||||
userEmail = "boss@atagen.co";
|
||||
extraConfig = {
|
||||
credential.helper = "keepassxc";
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
libreoffice
|
||||
home.packages = [
|
||||
pkgs.libreoffice
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,102 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (pkgs) rice;
|
||||
palette = pkgs.lib.nix-rice.palette.toRGBShortHex rice.palette;
|
||||
in
|
||||
{
|
||||
programs.hyprlock = {
|
||||
# enable = true;
|
||||
};
|
||||
|
||||
services.hypridle = {
|
||||
# enable = true;
|
||||
};
|
||||
|
||||
services.hyprpaper = {
|
||||
# enable = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.x86_64-linux.hyprland;
|
||||
systemd = {
|
||||
enable = true;
|
||||
variables = [ "--all" ];
|
||||
};
|
||||
settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
general =
|
||||
let
|
||||
inherit (rice.borders) thickness;
|
||||
inherit (palette) normal;
|
||||
in
|
||||
{
|
||||
inherit (rice.borders) gaps_in gaps_out;
|
||||
border_size = thickness;
|
||||
layout = "dwindle";
|
||||
"col.inactive_border" = "rgb(${normal.black})";
|
||||
"col.active_border" = "rgb(${normal.yellow})";
|
||||
"col.nogroup_border" = "rgb(${normal.black})";
|
||||
"col.nogroup_border_active" = "rgb(${normal.yellow})";
|
||||
snap.enabled = true;
|
||||
};
|
||||
cursor = {
|
||||
no_hardware_cursors = true;
|
||||
};
|
||||
decoration = {
|
||||
inherit (rice.borders) rounding;
|
||||
blur.enabled = false;
|
||||
shadow.enabled = false;
|
||||
};
|
||||
# input.numlock_by_default = true;
|
||||
# groups = let
|
||||
# inherit (palette) normal;
|
||||
# in {
|
||||
# "col.border_active" = "rgb(${normal.red})";
|
||||
# "col.border_inactive" = "rgb(${normal.black})";
|
||||
# "col.border_locked_active" = "rgb(${normal.red})";
|
||||
# "col.border_locked_inactive" = "rgb(${normal.black})";
|
||||
# };
|
||||
misc = {
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
vrr = 0;
|
||||
mouse_move_enables_dpms = true;
|
||||
key_press_enables_dpms = true;
|
||||
layers_hog_keyboard_focus = true;
|
||||
background_color = "rgb(${palette.normal.black})";
|
||||
};
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
force_split = 2;
|
||||
preserve_split = true;
|
||||
};
|
||||
monitor = [
|
||||
"DP-1, 2560x1440@165, 1080x0, 1"
|
||||
"HDMI-A-2, 1920x1080@60, auto-left, 1"
|
||||
"Unknown-1, disable"
|
||||
];
|
||||
bind =
|
||||
let
|
||||
makeDirBind =
|
||||
bind: extraMods:
|
||||
lib.mapAttrsToList (key: dir: "$mainMod${extraMods}, ${key}, ${bind}, ${dir}") {
|
||||
h = "l";
|
||||
j = "d";
|
||||
k = "u";
|
||||
l = "r";
|
||||
};
|
||||
in
|
||||
[
|
||||
"$mainMod, Return, exec, ${lib.getExe pkgs.kitty}"
|
||||
]
|
||||
++ makeDirBind "movefocus" ""
|
||||
++ makeDirBind "movewindow" "+SHIFT";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,11 +1,13 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
mpv
|
||||
imv
|
||||
strawberry
|
||||
resonance
|
||||
zathura
|
||||
playerctl
|
||||
];
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
mpv
|
||||
imv
|
||||
strawberry
|
||||
resonance
|
||||
zathura
|
||||
playerctl
|
||||
;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,23 +4,22 @@
|
|||
config,
|
||||
nix-rice,
|
||||
rice,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
services =
|
||||
let
|
||||
inherit (pkgs) swaynotificationcenter sway-audio-idle-inhibit;
|
||||
inherit (pkgs) swaynotificationcenter;
|
||||
in
|
||||
[
|
||||
swaynotificationcenter
|
||||
sway-audio-idle-inhibit
|
||||
];
|
||||
errata =
|
||||
let
|
||||
inherit (pkgs) sirula avizo playerctl;
|
||||
inherit (pkgs) avizo playerctl;
|
||||
in
|
||||
[
|
||||
sirula
|
||||
avizo
|
||||
playerctl
|
||||
];
|
||||
|
@ -30,9 +29,10 @@ let
|
|||
swayidle
|
||||
swaybg
|
||||
systemd
|
||||
niri-unstable
|
||||
avizo
|
||||
;
|
||||
|
||||
inherit (inputs.niri.packages.x86_64-linux) niri-unstable;
|
||||
in
|
||||
[
|
||||
{
|
||||
|
@ -104,7 +104,13 @@ in
|
|||
);
|
||||
in
|
||||
{
|
||||
"Mod+D".action.spawn = "sirula";
|
||||
"Mod+D".action.spawn = [
|
||||
"qs"
|
||||
"ipc"
|
||||
"call"
|
||||
"launch"
|
||||
"toggle"
|
||||
];
|
||||
"Mod+F".action.spawn = "firefox";
|
||||
"Mod+E".action.spawn = "nautilus";
|
||||
"Mod+Return".action.spawn = "kitty";
|
||||
|
@ -185,7 +191,7 @@ in
|
|||
];
|
||||
focus-ring =
|
||||
let
|
||||
pal = nix-rice.palette.toRgbHex rice.palette;
|
||||
pal = rice.palette.hex;
|
||||
in
|
||||
{
|
||||
active = {
|
||||
|
@ -198,75 +204,64 @@ in
|
|||
};
|
||||
prefer-no-csd = true;
|
||||
hotkey-overlay.skip-at-startup = true;
|
||||
};
|
||||
|
||||
programs.ironbar = {
|
||||
enable = true;
|
||||
systemd = true;
|
||||
config = {
|
||||
monitors."DP-1" = {
|
||||
position = "top";
|
||||
height = 16;
|
||||
start = [
|
||||
window-rules =
|
||||
let
|
||||
v = 10.0;
|
||||
in
|
||||
[
|
||||
{
|
||||
type = "music";
|
||||
player_type = "mpris";
|
||||
geometry-corner-radius = {
|
||||
bottom-left = v;
|
||||
bottom-right = 0.0;
|
||||
top-left = 0.0;
|
||||
top-right = v;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
}
|
||||
];
|
||||
center = [
|
||||
{
|
||||
type = "focused";
|
||||
icon_size = 16;
|
||||
truncate = "middle";
|
||||
}
|
||||
];
|
||||
end = [
|
||||
{ type = "clock"; }
|
||||
{ type = "tray"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.ironbar = {
|
||||
# programs.ironbar = {
|
||||
# enable = true;
|
||||
# systemd = true;
|
||||
# config = {
|
||||
# monitors."DP-1" = {
|
||||
# position = "top";
|
||||
# height = 16;
|
||||
# start = [
|
||||
# {
|
||||
# type = "music";
|
||||
# player_type = "mpris";
|
||||
# }
|
||||
# ];
|
||||
# center = [
|
||||
# {
|
||||
# type = "focused";
|
||||
# icon_size = 16;
|
||||
# truncate = "middle";
|
||||
# }
|
||||
# ];
|
||||
# end = [
|
||||
# { type = "clock"; }
|
||||
# { type = "tray"; }
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
systemd.user.services.quickshell = {
|
||||
Unit.PartOf = [ "graphical-session.target" ];
|
||||
Unit.After = [
|
||||
"graphical-session.target"
|
||||
"niri.service"
|
||||
];
|
||||
Install.WantedBy = [ "graphical-session.target" ];
|
||||
Service = {
|
||||
ExecStart = "${lib.getExe' (inputs.quickshell.packages.${pkgs.system}.default.override {
|
||||
withHyprland = false;
|
||||
withI3 = false;
|
||||
}) "qs"}";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"sirula/config.toml".text = ''
|
||||
exclusive = false
|
||||
icon_size = 24
|
||||
lines = 2
|
||||
anchor_left = false
|
||||
anchor_right = true
|
||||
anchor_bottom = false
|
||||
anchor_top = false
|
||||
width = 320
|
||||
height = 720
|
||||
command_prefix = ":"
|
||||
frequent_first = true
|
||||
recent_first = true
|
||||
term_command = "kitty {}"
|
||||
'';
|
||||
|
||||
"sirula/style.css".text =
|
||||
let
|
||||
pal = nix-rice.palette.toRgbHex rice.palette;
|
||||
in
|
||||
''
|
||||
#root-box {
|
||||
background-color: ${pal.normal.black};
|
||||
color: ${pal.normal.yellow};
|
||||
font-family: '${rice.fonts.sans.name}';
|
||||
}
|
||||
/* what's the name of the highlighted search text?
|
||||
color: ${pal.normal.white};
|
||||
*/
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,64 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = 3021;
|
||||
in
|
||||
{
|
||||
imports = [ ./ollama.nix ];
|
||||
|
||||
localWebApps = {
|
||||
anything-llm = {
|
||||
name = "Anything LLM";
|
||||
genericName = "Chatbot";
|
||||
icon = ../icons/anythingllm.png;
|
||||
inherit port;
|
||||
requires.containers = [
|
||||
"anything-llm"
|
||||
"ollama"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services.podman.containers.anything-llm =
|
||||
let
|
||||
str = builtins.toString;
|
||||
username = config.mainUser;
|
||||
in
|
||||
{
|
||||
image = "docker.io/mintplexlabs/anythingllm";
|
||||
devices = [ "nvidia.com/gpu=all" ];
|
||||
ports = [ "${str port}:3001" ];
|
||||
autoStart = false;
|
||||
autoUpdate = "registry";
|
||||
network = [ "ollama" ];
|
||||
volumes =
|
||||
let
|
||||
home = "/home/${username}";
|
||||
share = "${home}/.local/share/anything-llm";
|
||||
in
|
||||
[
|
||||
"${share}:/app/server/storage"
|
||||
"${share}/.env:/app/server/.env"
|
||||
"${share}/config:/home/anythingllm/.config/anythingllm-desktop"
|
||||
"${share}/config:/home/${username}/.config/anythingllm-desktop"
|
||||
];
|
||||
environment = {
|
||||
STORAGE_DIR = "/app/server/storage";
|
||||
LLM_PROVIDER = "ollama";
|
||||
OLLAMA_BASE_PATH = "http://ollama:11434";
|
||||
EMBEDDING_ENGINE = "ollama";
|
||||
EMBEDDING_BASE_PATH = "http://ollama:11434";
|
||||
VECTOR_DB = "lancedb";
|
||||
WHISPER_PROVIDER = "local";
|
||||
TTS_PROVIDER = "native";
|
||||
};
|
||||
extraConfig.Unit.Requires = [ "podman-ollama.service" ];
|
||||
extraPodmanArgs = [
|
||||
"--health-cmd"
|
||||
(lib.escapeShellArg "bash -c 'cat < /dev/null > /dev/tcp/localhost/3001'")
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
_: {
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
inline_height = 20;
|
||||
show_preview = true;
|
||||
show_help = false;
|
||||
enter_accept = false;
|
||||
keymap_mode = "vim-normal";
|
||||
style = "compact";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,347 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
palette-hex = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.palette;
|
||||
in
|
||||
{
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
themes = with palette-hex; {
|
||||
nix-rice = {
|
||||
"attribute" = bright.cyan;
|
||||
"keyword" = {
|
||||
fg = normal.red;
|
||||
};
|
||||
"keyword.directive" = normal.red;
|
||||
"namespace" = bright.cyan;
|
||||
"punctuation" = bright.yellow;
|
||||
"punctuation.delimiter" = bright.yellow;
|
||||
"operator" = bright.magenta;
|
||||
"special" = normal.magenta;
|
||||
"variable.other.member" = bright.blue;
|
||||
"variable" = util.fg;
|
||||
"variable.builtin" = bright.yellow;
|
||||
"variable.parameter" = bright.white;
|
||||
"type" = normal.yellow;
|
||||
"type.builtin" = normal.yellow;
|
||||
"constructor" = {
|
||||
fg = bright.magenta;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"function" = {
|
||||
fg = normal.green;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"function.macro" = bright.cyan;
|
||||
"function.builtin" = normal.yellow;
|
||||
"tag" = normal.red;
|
||||
"comment" = {
|
||||
fg = normal.magenta;
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"constant" = {
|
||||
fg = bright.magenta;
|
||||
};
|
||||
"constant.builtin" = {
|
||||
fg = bright.magenta;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"string" = normal.green;
|
||||
"constant.numeric" = bright.magenta;
|
||||
"constant.character.escape" = {
|
||||
fg = bright.white;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"label" = bright.cyan;
|
||||
"module" = bright.cyan;
|
||||
"diff.plus" = bright.green;
|
||||
"diff.delta" = bright.yellow;
|
||||
"diff.minus" = bright.red;
|
||||
"warning" = bright.yellow;
|
||||
"error" = bright.red;
|
||||
"info" = bright.cyan;
|
||||
"hint" = bright.blue;
|
||||
"ui.background" = {
|
||||
inherit (util) bg;
|
||||
};
|
||||
"ui.linenr" = {
|
||||
fg = normal.cyan;
|
||||
};
|
||||
"ui.linenr.selected" = {
|
||||
fg = normal.yellow;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.cursorline" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.statusline" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.statusline.normal" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
inherit (util) fg;
|
||||
bg = normal.blue;
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.yellow;
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = normal.white;
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.popup" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.window" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.help" = {
|
||||
bg = normal.black;
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.text" = {
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.text.focus" = {
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.selection" = {
|
||||
# modifiers = ["reversed"];
|
||||
bg = bright.yellow;
|
||||
};
|
||||
"ui.selection.primary" = {
|
||||
modifiers = [ "reversed" ];
|
||||
};
|
||||
# "ui.selection.primary" = { bg = bright.cyan; };
|
||||
"ui.cursor.primary" = {
|
||||
bg = normal.white;
|
||||
fg = normal.black;
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
bg = bright.cyan;
|
||||
};
|
||||
"ui.menu" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
fg = bright.black;
|
||||
bg = bright.blue;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.virtual.whitespace" = bright.black;
|
||||
"ui.virtual.ruler" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.virtual.inlay-hint" = {
|
||||
fg = normal.magenta;
|
||||
};
|
||||
"diagnostic.warning" = {
|
||||
underline = {
|
||||
color = bright.yellow;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.error" = {
|
||||
underline = {
|
||||
color = bright.red;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.info" = {
|
||||
underline = {
|
||||
color = bright.cyan;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.hint" = {
|
||||
underline = {
|
||||
color = bright.blue;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"markup.heading" = bright.cyan;
|
||||
"markup.bold" = {
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"markup.italic" = {
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"markup.strikethrough" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
};
|
||||
"markup.link.url" = {
|
||||
fg = bright.green;
|
||||
modifiers = [ "underlined" ];
|
||||
};
|
||||
"markup.link.text" = bright.red;
|
||||
"markup.raw" = bright.red;
|
||||
};
|
||||
};
|
||||
|
||||
# theme = "nix-rice"
|
||||
|
||||
# [editor]
|
||||
# bufferline = "multiple"
|
||||
# cursorline = true
|
||||
# true-color = true
|
||||
|
||||
# [editor.cursor-shape]
|
||||
# insert = "bar"
|
||||
# normal = "block"
|
||||
# select = "underline"
|
||||
|
||||
# [editor.lsp]
|
||||
# display-messages = true
|
||||
|
||||
# [editor.statusline]
|
||||
# left = ["mode", "spinner", "version-control", "file-name", "file-modification-indicator"]
|
||||
|
||||
settings = {
|
||||
theme = "nix-rice";
|
||||
editor = {
|
||||
bufferline = "multiple";
|
||||
cursorline = true;
|
||||
true-color = true;
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
statusline.left = [
|
||||
"mode"
|
||||
"spinner"
|
||||
"version-control"
|
||||
"file-name"
|
||||
"file-modification-indicator"
|
||||
];
|
||||
lsp.display-messages = true;
|
||||
keys =
|
||||
let
|
||||
extend = {
|
||||
"A-x" = "extend_to_line_bounds";
|
||||
"X" = [
|
||||
"extend_line_up"
|
||||
"extend_to_line_bounds"
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
normal = extend;
|
||||
select = extend;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "rust";
|
||||
language-servers = [
|
||||
"rust-analyzer"
|
||||
"lsp-ai"
|
||||
];
|
||||
auto-format = true;
|
||||
}
|
||||
{
|
||||
name = "nix";
|
||||
language-servers = [
|
||||
"nixd"
|
||||
"lsp-ai"
|
||||
];
|
||||
file-types = [ "nix" ];
|
||||
# auto-format = true;
|
||||
formatter = {
|
||||
command = "alejandra";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "ocaml";
|
||||
language-servers = [
|
||||
"ocamllsp"
|
||||
"lsp-ai"
|
||||
];
|
||||
file-types = [
|
||||
"ml"
|
||||
"mli"
|
||||
];
|
||||
auto-format = true;
|
||||
formatter = {
|
||||
command = "ocamlformat";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
language-server = {
|
||||
nixd = {
|
||||
command = "nixd";
|
||||
};
|
||||
|
||||
lsp-ai = {
|
||||
command = "lsp-ai";
|
||||
config = {
|
||||
memory.fileStore = { };
|
||||
models = {
|
||||
llama32 = {
|
||||
type = "ollama";
|
||||
model = "llama3.2";
|
||||
};
|
||||
starcoder2 = {
|
||||
type = "ollama";
|
||||
model = "starcoder2:7b";
|
||||
};
|
||||
};
|
||||
completion = {
|
||||
model = "starcoder2";
|
||||
parameters = {
|
||||
maxContext = 1024;
|
||||
options = {
|
||||
numPredict = 32;
|
||||
};
|
||||
postProcess = {
|
||||
removeDuplicateStart = true;
|
||||
removeDuplicateEnd = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
chat = {
|
||||
trigger = "!C";
|
||||
action_display_name = "Chat";
|
||||
model = "llama32";
|
||||
parameters = {
|
||||
max_context = 4096;
|
||||
max_tokens = 1024;
|
||||
system = "You are a code assistant chatbot. The user will ask you for assistance coding and you will do your best to answer succinctly and accurately.";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
rust-analyzer = {
|
||||
config = {
|
||||
cargo = {
|
||||
buildScripts = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
procMacro = {
|
||||
enable = true;
|
||||
};
|
||||
check = {
|
||||
command = "clippy";
|
||||
};
|
||||
};
|
||||
};
|
||||
}; # language-server
|
||||
}; # languages
|
||||
}; # helix config
|
||||
}
|
|
@ -1,15 +1,17 @@
|
|||
{
|
||||
nix-rice,
|
||||
inputs,
|
||||
pkgs,
|
||||
rice,
|
||||
...
|
||||
}:
|
||||
let
|
||||
palette-hex = nix-rice.palette.toRgbHex rice.palette;
|
||||
pal = rice.palette.hex;
|
||||
in
|
||||
{
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
themes = with palette-hex; {
|
||||
package = inputs.helix.packages.${pkgs.system}.helix;
|
||||
themes = with pal; {
|
||||
nix-rice = {
|
||||
"attribute" = bright.cyan;
|
||||
"keyword" = {
|
||||
|
@ -208,15 +210,6 @@ in
|
|||
"file-modification-indicator"
|
||||
];
|
||||
lsp.display-messages = true;
|
||||
# keys = let
|
||||
# extend = {
|
||||
# "A-x" = "extend_to_line_bounds";
|
||||
# "X" = ["extend_line_up" "extend_to_line_bounds"];
|
||||
# };
|
||||
# in {
|
||||
# normal = extend;
|
||||
# select = extend;
|
||||
# };
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -238,23 +231,20 @@ in
|
|||
];
|
||||
|
||||
language-server = {
|
||||
qmlls = {
|
||||
command = "qmlls";
|
||||
args = [ "-E" ];
|
||||
};
|
||||
|
||||
nil = {
|
||||
command = "nil";
|
||||
};
|
||||
|
||||
rust-analyzer = {
|
||||
config = {
|
||||
cargo = {
|
||||
buildScripts = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
procMacro = {
|
||||
enable = true;
|
||||
};
|
||||
check = {
|
||||
command = "clippy";
|
||||
};
|
||||
cargo.buildScripts.enable = true;
|
||||
procMacro.enable = true;
|
||||
check.command = "clippy";
|
||||
};
|
||||
};
|
||||
}; # language-server
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
{
|
||||
nix-rice,
|
||||
rice,
|
||||
...
|
||||
}:
|
||||
let
|
||||
palette-hex = nix-rice.palette.toRgbHex rice.palette;
|
||||
pal = rice.palette.hex;
|
||||
in
|
||||
{
|
||||
programs.kitty = {
|
||||
|
@ -12,7 +11,7 @@ in
|
|||
font = {
|
||||
inherit (rice.fonts.monospace) name size;
|
||||
};
|
||||
settings = with palette-hex; {
|
||||
settings = with pal; {
|
||||
foreground = util.fg;
|
||||
background = util.bg;
|
||||
inherit (util) cursor;
|
||||
|
@ -37,6 +36,7 @@ in
|
|||
color15 = bright.white;
|
||||
sync_to_monitor = "yes";
|
||||
shell = "fish";
|
||||
cursor_trail = 100;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,82 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
xdg.desktopEntries.ollama = {
|
||||
name = "Ollama";
|
||||
type = "Application";
|
||||
icon = ../icons/ollama.png;
|
||||
exec =
|
||||
let
|
||||
inherit (lib) getExe getExe';
|
||||
notify-send = "${getExe' pkgs.libnotify "notify-send"} -a \"Ollama\"";
|
||||
systemctl = "${getExe' pkgs.systemd "systemctl"}";
|
||||
podman = "${getExe pkgs.podman}";
|
||||
in
|
||||
"${pkgs.writeShellScript "ollama" ''
|
||||
set -euo pipefail
|
||||
|
||||
exit_error() {
|
||||
${notify-send} -w "Failure" $1
|
||||
exit 1
|
||||
}
|
||||
|
||||
container_checks() {
|
||||
if [ "$(${podman} inspect -f {{.State.Health.Status}} ollama)" == "healthy" ]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
${notify-send} "Launching Ollama.." "Please be patient."
|
||||
|
||||
${systemctl} --user start podman-ollama
|
||||
checks=0
|
||||
until container_checks; do
|
||||
sleep 2
|
||||
checks=$((checks+1))
|
||||
if [ $((checks%10)) -eq 0 ]; then
|
||||
${notify-send} "Launching.."
|
||||
fi
|
||||
if [ $checks -ge 60 ]; then
|
||||
${systemctl} --no-block --user stop podman-ollama.target
|
||||
exit_error "Failed to launch!"
|
||||
fi
|
||||
done
|
||||
|
||||
${notify-send} "Ollama serving on port 11434."
|
||||
''}";
|
||||
};
|
||||
|
||||
services.podman = {
|
||||
containers.ollama =
|
||||
let
|
||||
username = config.mainUser;
|
||||
in
|
||||
{
|
||||
image = "docker.io/ollama/ollama:latest";
|
||||
devices = [ "nvidia.com/gpu=all" ];
|
||||
autoStart = false;
|
||||
autoUpdate = "registry";
|
||||
network = [ "ollama" ];
|
||||
ports = [ "11434:11434" ];
|
||||
volumes = [
|
||||
"/home/${username}/.local/share/ollama:/models"
|
||||
];
|
||||
environment.OLLAMA_MODELS = "/models";
|
||||
extraPodmanArgs = [
|
||||
"--health-cmd"
|
||||
(lib.escapeShellArg "bash -c 'cat < /dev/null > /dev/tcp/localhost/11434'")
|
||||
];
|
||||
};
|
||||
|
||||
networks.ollama = {
|
||||
subnet = "192.168.10.0/24";
|
||||
gateway = "192.168.10.1";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
port = 3021;
|
||||
in
|
||||
{
|
||||
imports = [ ./ollama.nix ];
|
||||
|
||||
localWebApps = {
|
||||
openwebui = {
|
||||
name = "OpenWebUI";
|
||||
genericName = "LLM";
|
||||
icon = ../icons/openwebui.png;
|
||||
inherit port;
|
||||
requires.containers = [
|
||||
"openwebui"
|
||||
"ollama"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services.podman = {
|
||||
containers.openwebui =
|
||||
let
|
||||
str = builtins.toString;
|
||||
in
|
||||
{
|
||||
# serviceName = "openwebui";
|
||||
image = "ghcr.io/open-webui/open-webui:main";
|
||||
ports = [ "${str port}:${str port}" ];
|
||||
environment = {
|
||||
WEBUI_AUTH = "False";
|
||||
PORT = "${str port}";
|
||||
};
|
||||
autoStart = false;
|
||||
networks = [ "ollama" ];
|
||||
unitConfig = {
|
||||
Requires = [ "podman-ollama.service" ];
|
||||
};
|
||||
extraOptions = [
|
||||
"--health-cmd"
|
||||
(lib.escapeShellArg "bash -c 'cat < /dev/null > /dev/tcp/localhost/${str port}'")
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
localWebApps = {
|
||||
stable-diffusion = {
|
||||
name = "Stable Diffusion";
|
||||
genericName = "Image Generator";
|
||||
icon = ../icons/comfyui.png;
|
||||
id = 5;
|
||||
port = 7860;
|
||||
requires = [ "stable-diffusion" ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
{ rice, inputs, ... }:
|
||||
{
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
mutableExtensionsDir = false;
|
||||
profiles.default = {
|
||||
extensions = with inputs.nix-vscode.extensions.x86_64-linux.vscode-marketplace; [
|
||||
rust-lang.rust-analyzer
|
||||
ocamllabs.ocaml-platform
|
||||
jnoortheen.nix-ide
|
||||
mkhl.direnv
|
||||
barbosshack.crates-io
|
||||
vadimcn.vscode-lldb
|
||||
kend.dancehelixkey
|
||||
hikionori.kanagawa-vscode-theme
|
||||
dbaeumer.vscode-eslint
|
||||
ms-vscode.extension-test-runner
|
||||
];
|
||||
userSettings = {
|
||||
"window.titleBarStyle" = "custom";
|
||||
"editor.fontFamily" = "${rice.fonts.monospace.name}";
|
||||
"editor.fontSize" = 12;
|
||||
"editor.formatOnSave" = true;
|
||||
"workbench.colorTheme" = "KanagawaTheme";
|
||||
"rust-analyzer.debug.engine" = "vadimcn.vscode-lldb";
|
||||
"rust-analyzer.inlayHints.chainingHints.enable" = false;
|
||||
"rust-analyzer.inlayHints.parameterHints.enable" = false;
|
||||
"rust-analyzer.inlayHints.typeHints.enable" = false;
|
||||
"nix.enableLanguageServer" = true;
|
||||
"nix.serverPath" = "nil";
|
||||
"nix.serverSettings" = {
|
||||
nil.formatting.command = [
|
||||
"nixfmt"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,11 +1,10 @@
|
|||
{
|
||||
nix-rice,
|
||||
rice,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
palette-hex = nix-rice.palette.toRgbHex rice.palette;
|
||||
pal = rice.palette.hex;
|
||||
in
|
||||
{
|
||||
programs.wlogout = {
|
||||
|
@ -13,7 +12,7 @@ in
|
|||
package = pkgs.wleave;
|
||||
layout = builtins.fromJSON (builtins.readFile ../dots/wlogout/layout);
|
||||
style =
|
||||
with palette-hex;
|
||||
with pal;
|
||||
(builtins.replaceStrings
|
||||
[
|
||||
"/usr/share/wlogout"
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) getExe;
|
||||
inherit (config.home) homeDirectory;
|
||||
palette-hex = inputs.nix-rice.palette.toRgbHex pkgs.rice.palette;
|
||||
in
|
||||
{
|
||||
ezOneShots = with pkgs; {
|
||||
xrdb = "${getExe xorg.xrdb} -load ${homeDirectory}/.Xresources";
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
xorg.xrdb
|
||||
];
|
||||
xresources.properties = with palette-hex; {
|
||||
"*.foreground" = util.fg;
|
||||
"*.background" = util.bg;
|
||||
"*.cursorColor" = util.cursor;
|
||||
"*.selection_foreground" = util.fg_sel;
|
||||
"*.selection_background" = util.bg_sel;
|
||||
"*.color0" = normal.black;
|
||||
"*.color1" = normal.red;
|
||||
"*.color2" = normal.green;
|
||||
"*.color3" = normal.yellow;
|
||||
"*.color4" = normal.blue;
|
||||
"*.color5" = normal.magenta;
|
||||
"*.color6" = normal.cyan;
|
||||
"*.color7" = normal.white;
|
||||
"*.color8" = bright.black;
|
||||
"*.color9" = bright.red;
|
||||
"*.color10" = bright.green;
|
||||
"*.color11" = bright.yellow;
|
||||
"*.color12" = bright.blue;
|
||||
"*.color13" = bright.magenta;
|
||||
"*.color14" = bright.cyan;
|
||||
"*.color15" = bright.white;
|
||||
};
|
||||
}
|
|
@ -1,69 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autosuggestion.enable = true;
|
||||
enableCompletion = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
enableVteIntegration = true;
|
||||
autocd = true;
|
||||
defaultKeymap = "viins";
|
||||
initExtra = builtins.readFile ../dots/zsh;
|
||||
plugins = [
|
||||
{
|
||||
name = "powerlevel10k";
|
||||
src = pkgs.zsh-powerlevel10k;
|
||||
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
|
||||
}
|
||||
{
|
||||
name = "zsh-vi-mode";
|
||||
src = pkgs.zsh-vi-mode;
|
||||
file = "share/zsh-vi-mode/zsh-vi-mode.zsh";
|
||||
}
|
||||
{
|
||||
name = "zsh-autopair";
|
||||
src = pkgs.zsh-autopair;
|
||||
file = "share/zsh-autopair/zsh-autopair.zsh";
|
||||
}
|
||||
{
|
||||
name = "zsh-completions";
|
||||
src = pkgs.zsh-completions;
|
||||
file = "share/zsh-completions/zsh-completions.zsh";
|
||||
}
|
||||
{
|
||||
name = "zsh-command-time";
|
||||
src = pkgs.zsh-command-time;
|
||||
file = "share/zsh-completions/zsh-command-time.zsh";
|
||||
}
|
||||
{
|
||||
name = "zsh-autocomplete";
|
||||
src = pkgs.zsh-autocomplete;
|
||||
file = "share/zsh-autocomplete/zsh-autocomplete.zsh";
|
||||
}
|
||||
{
|
||||
name = "zsh-fast-syntax-highlighting";
|
||||
src = pkgs.zsh-fast-syntax-highlighting;
|
||||
file = "share/zsh-fast-syntax-highlighting/zsh-fast-syntax-highlighting.zsh";
|
||||
}
|
||||
{
|
||||
name = "zsh-nix-shell";
|
||||
src = pkgs.zsh-nix-shell;
|
||||
file = "share/zsh-nix-shell/zsh-nix-shell.zsh";
|
||||
}
|
||||
{
|
||||
name = "any-nix-shell";
|
||||
src = pkgs.any-nix-shell;
|
||||
file = "share/any-nix-shell/any-nix-shell.zsh";
|
||||
}
|
||||
{
|
||||
name = "nix-zsh-completions";
|
||||
src = pkgs.nix-zsh-completions;
|
||||
file = "share/nix-zsh-completions/nix-zsh-completions.zsh";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,382 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
containerOptions = _: {
|
||||
options = {
|
||||
pullPolicy = mkOption {
|
||||
type = with types; str;
|
||||
description = "Podman container pulling policy";
|
||||
default = "newer";
|
||||
};
|
||||
image = mkOption {
|
||||
type = with types; str;
|
||||
description = "OCI image to run.";
|
||||
example = "library/hello-world";
|
||||
};
|
||||
|
||||
imageFile = mkOption {
|
||||
type = with types; nullOr package;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to an image file to load before running the image. This can
|
||||
be used to bypass pulling the image from the registry.
|
||||
|
||||
The `image` attribute must match the name and
|
||||
tag of the image contained in this file, as they will be used to
|
||||
run the container with that image. If they do not match, the
|
||||
image will be pulled from the registry as usual.
|
||||
'';
|
||||
example = literalExpression "pkgs.dockerTools.buildImage {...};";
|
||||
};
|
||||
|
||||
login = {
|
||||
username = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = "Username for login.";
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = "Path to file containing password.";
|
||||
example = "/etc/nixos/dockerhub-password.txt";
|
||||
};
|
||||
|
||||
registry = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = "Registry where to login to.";
|
||||
example = "https://docker.pkg.github.com";
|
||||
};
|
||||
};
|
||||
|
||||
cmd = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
description = "Commandline arguments to pass to the image's entrypoint.";
|
||||
example = literalExpression ''
|
||||
["--port=9000"]
|
||||
'';
|
||||
};
|
||||
|
||||
labels = mkOption {
|
||||
type = with types; attrsOf str;
|
||||
default = { };
|
||||
description = "Labels to attach to the container at runtime.";
|
||||
example = literalExpression ''
|
||||
{
|
||||
"traefik.https.routers.example.rule" = "Host(`example.container`)";
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
entrypoint = mkOption {
|
||||
type = with types; nullOr str;
|
||||
description = "Override the default entrypoint of the image.";
|
||||
default = null;
|
||||
example = "/bin/my-app";
|
||||
};
|
||||
|
||||
environment = mkOption {
|
||||
type = with types; attrsOf str;
|
||||
default = { };
|
||||
description = "Environment variables to set for this container.";
|
||||
example = literalExpression ''
|
||||
{
|
||||
DATABASE_HOST = "db.example.com";
|
||||
DATABASE_PORT = "3306";
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
environmentFiles = mkOption {
|
||||
type = with types; listOf path;
|
||||
default = [ ];
|
||||
description = "Environment files for this container.";
|
||||
example = literalExpression ''
|
||||
[
|
||||
/path/to/.env
|
||||
/path/to/.env.secret
|
||||
]
|
||||
'';
|
||||
};
|
||||
|
||||
log-driver = mkOption {
|
||||
type = types.str;
|
||||
default = "journald";
|
||||
description = ''
|
||||
Logging driver for the container. The default of
|
||||
`"journald"` means that the container's logs will be
|
||||
handled as part of the systemd unit.
|
||||
|
||||
For more details and a full list of logging drivers, refer to podman documentation.
|
||||
|
||||
For Docker:
|
||||
[Docker engine documentation](https://docs.docker.com/engine/reference/run/#logging-drivers---log-driver)
|
||||
|
||||
For Podman:
|
||||
Refer to the docker-run(1) man page.
|
||||
'';
|
||||
};
|
||||
|
||||
ports = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Network ports to publish from the container to the outer host.
|
||||
|
||||
Valid formats:
|
||||
- `<ip>:<hostPort>:<containerPort>`
|
||||
- `<ip>::<containerPort>`
|
||||
- `<hostPort>:<containerPort>`
|
||||
- `<containerPort>`
|
||||
|
||||
Both `hostPort` and `containerPort` can be specified as a range of
|
||||
ports. When specifying ranges for both, the number of container
|
||||
ports in the range must match the number of host ports in the
|
||||
range. Example: `1234-1236:1234-1236/tcp`
|
||||
|
||||
When specifying a range for `hostPort` only, the `containerPort`
|
||||
must *not* be a range. In this case, the container port is published
|
||||
somewhere within the specified `hostPort` range.
|
||||
Example: `1234-1236:1234/tcp`
|
||||
|
||||
Refer to the
|
||||
[Docker engine documentation](https://docs.docker.com/engine/reference/run/#expose-incoming-ports) for full details.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
[
|
||||
"8080:9000"
|
||||
]
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
Override the username or UID (and optionally groupname or GID) used
|
||||
in the container.
|
||||
'';
|
||||
example = "nobody:nogroup";
|
||||
};
|
||||
|
||||
volumes = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
List of volumes to attach to this container.
|
||||
|
||||
Note that this is a list of `"src:dst"` strings to
|
||||
allow for `src` to refer to `/nix/store` paths, which
|
||||
would be difficult with an attribute set. There are
|
||||
also a variety of mount options available as a third
|
||||
field; please refer to the
|
||||
[docker engine documentation](https://docs.docker.com/engine/reference/run/#volume-shared-filesystems) for details.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
[
|
||||
"volume_name:/path/inside/container"
|
||||
"/path/on/host:/path/inside/container"
|
||||
]
|
||||
'';
|
||||
};
|
||||
|
||||
workdir = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = "Override the default working directory for the container.";
|
||||
example = "/var/lib/hello_world";
|
||||
};
|
||||
|
||||
dependsOn = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Define which other containers this one depends on. They will be added to both After and Requires for the unit.
|
||||
|
||||
Use the same name as the attribute under `virtualisation.oci-containers.containers`.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
containers = {
|
||||
node1 = {};
|
||||
node2 = {
|
||||
dependsOn = [ "node1" ];
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
hostname = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = "The hostname of the container.";
|
||||
example = "hello-world";
|
||||
};
|
||||
|
||||
preRunExtraOptions = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
description = "Extra options for podman that go before the `run` argument.";
|
||||
example = [
|
||||
"--runtime"
|
||||
"runsc"
|
||||
];
|
||||
};
|
||||
|
||||
extraOptions = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
description = "Extra options for podman run`.";
|
||||
example = literalExpression ''
|
||||
["--network=host"]
|
||||
'';
|
||||
};
|
||||
|
||||
autoStart = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
When enabled, the container is automatically started on boot.
|
||||
If this option is set to false, the container has to be started on-demand via its service.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mkService =
|
||||
name: container:
|
||||
let
|
||||
podman = lib.getExe pkgs.podman;
|
||||
rm = lib.getExe' pkgs.coreutils "rm";
|
||||
printf = lib.getExe' pkgs.coreutils "printf";
|
||||
getId = ''"$(${lib.getExe' pkgs.coreutils "id"} -u)"'';
|
||||
dependsOn = map (x: "podman-${x}.service") container.dependsOn;
|
||||
escapedName = lib.escapeShellArg name;
|
||||
preStartScript = pkgs.writeShellApplication {
|
||||
name = "pre-start";
|
||||
runtimeInputs = [ ];
|
||||
text = ''
|
||||
${printf} "Running pre-start script.."
|
||||
${podman} rm -f ${name} || true
|
||||
${lib.optionalString (container.imageFile != null) ''
|
||||
${podman} load -i ${container.imageFile}
|
||||
''}
|
||||
${rm} -f /run/user/${getId}/podman-${escapedName}.ctr-id
|
||||
${printf} " success.\nStarting Podman...\n"
|
||||
'';
|
||||
};
|
||||
script = concatStringsSep " \\\n " (
|
||||
[
|
||||
"exec ${podman} "
|
||||
]
|
||||
++ map escapeShellArg container.preRunExtraOptions
|
||||
++ [
|
||||
"run"
|
||||
"--log-level=debug"
|
||||
"--rm"
|
||||
"--name=${escapedName}"
|
||||
"--log-driver=${container.log-driver}"
|
||||
]
|
||||
++ optional (container.entrypoint != null) "--entrypoint=${escapeShellArg container.entrypoint}"
|
||||
++ optional (container.hostname != null) "--hostname=${escapeShellArg container.hostname}"
|
||||
++ optional (container.pullPolicy != null) "--pull=${container.pullPolicy}"
|
||||
++ [
|
||||
"--cidfile=/run/user/${getId}/podman-${escapedName}.ctr-id"
|
||||
# "--sdnotify=ignore"
|
||||
"--cgroups=no-conmon"
|
||||
"--sdnotify=conmon"
|
||||
"-d"
|
||||
"--replace"
|
||||
]
|
||||
++ (mapAttrsToList (k: v: "-e ${escapeShellArg k}=${escapeShellArg v}") container.environment)
|
||||
++ map (f: "--env-file ${escapeShellArg f}") container.environmentFiles
|
||||
++ map (p: "-p ${escapeShellArg p}") container.ports
|
||||
++ optional (container.user != null) "-u ${escapeShellArg container.user}"
|
||||
++ map (v: "-v ${escapeShellArg v}") container.volumes
|
||||
++ (mapAttrsToList (k: v: "-l ${escapeShellArg k}=${escapeShellArg v}") container.labels)
|
||||
++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}"
|
||||
++ map escapeShellArg container.extraOptions
|
||||
++ [ container.image ]
|
||||
++ map escapeShellArg container.cmd
|
||||
);
|
||||
|
||||
inherit (lib)
|
||||
concatStringsSep
|
||||
escapeShellArg
|
||||
optional
|
||||
mapAttrsToList
|
||||
;
|
||||
in
|
||||
{
|
||||
Unit = {
|
||||
WantedBy = lib.optional container.autoStart "default.target"; # graphical-session instead maybe?
|
||||
After = dependsOn;
|
||||
Requires = dependsOn;
|
||||
# StopWhenUnneeded = true;
|
||||
};
|
||||
# TODO make network target..
|
||||
# wants = lib.optional (container.imageFile == null) "network-online.target";
|
||||
# after = lib.optionals (container.imageFile == null) [ "network-online.target" ]
|
||||
# ++ dependsOn;
|
||||
# environment = proxy_env;
|
||||
|
||||
Service = {
|
||||
### There is no generalized way of supporting `reload` for docker
|
||||
### containers. Some containers may respond well to SIGHUP sent to their
|
||||
### init process, but it is not guaranteed; some apps have other reload
|
||||
### mechanisms, some don't have a reload signal at all, and some docker
|
||||
### images just have broken signal handling. The best compromise in this
|
||||
### case is probably to leave ExecReload undefined, so `systemctl reload`
|
||||
### will at least result in an error instead of potentially undefined
|
||||
### behaviour.
|
||||
###
|
||||
### Advanced users can still override this part of the unit to implement
|
||||
### a custom reload handler, since the result of all this is a normal
|
||||
### systemd service from the perspective of the NixOS module system.
|
||||
###
|
||||
# ExecReload = ...;
|
||||
###
|
||||
ExecStartPre = [ "${preStartScript}/bin/pre-start" ];
|
||||
ExecStart = [
|
||||
"${pkgs.writeShellScript "start" script}"
|
||||
];
|
||||
ExecStop = [
|
||||
"${podman} stop --ignore --cidfile=/run/user/${getId}/podman-${escapedName}.ctr-id"
|
||||
"${podman} rm -f --ignore --cidfile=/run/user/${getId}/podman-${escapedName}.ctr-id"
|
||||
];
|
||||
# TimeoutStartSec = 0;
|
||||
# TimeoutStopSec = 120;
|
||||
# Restart = "always";
|
||||
Environment = [ "PODMAN_SYSTEMD_UNIT=podman-${name}.service" ];
|
||||
Type = "notify";
|
||||
NotifyAccess = "all";
|
||||
# Type = "exec";
|
||||
};
|
||||
};
|
||||
|
||||
cfg = config.containers;
|
||||
inherit (lib)
|
||||
mapAttrs'
|
||||
nameValuePair
|
||||
mkOption
|
||||
types
|
||||
mkIf
|
||||
literalExpression
|
||||
;
|
||||
in
|
||||
{
|
||||
options.containers = mkOption {
|
||||
default = { };
|
||||
type = with types; attrsOf (submodule containerOptions);
|
||||
};
|
||||
|
||||
config = mkIf (cfg != { }) {
|
||||
systemd.user.services = mapAttrs' (k: v: nameValuePair "podman-${k}" (mkService k v)) cfg;
|
||||
};
|
||||
}
|
|
@ -1,212 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
filterAttrs
|
||||
concatStrings
|
||||
concatStringsSep
|
||||
mapAttrsToList
|
||||
concatLists
|
||||
foldlAttrs
|
||||
concatMapAttrs
|
||||
mapAttrs'
|
||||
nameValuePair
|
||||
boolToString
|
||||
;
|
||||
inherit (builtins) typeOf toString stringLength;
|
||||
|
||||
# build up serialisation machinery from here for various types
|
||||
|
||||
# list -> array
|
||||
array = a: "[${concatStringsSep "," a}]";
|
||||
# attrset -> hashmap
|
||||
_assoc = a: mapAttrsToList (name: val: "${name}: ${val}") a;
|
||||
assoc = a: ''
|
||||
{
|
||||
${concatStringsSep ",\n" (concatLists (map _assoc a))}
|
||||
}'';
|
||||
# attrset -> struct
|
||||
_struct_kv =
|
||||
k: v:
|
||||
if v == null then
|
||||
""
|
||||
else
|
||||
(concatStringsSep ":" [
|
||||
k
|
||||
(serialise.${typeOf v} v)
|
||||
]);
|
||||
_struct_concat =
|
||||
s:
|
||||
foldlAttrs (
|
||||
acc: k: v:
|
||||
if stringLength acc > 0 then
|
||||
concatStringsSep ", " [
|
||||
acc
|
||||
(_struct_kv k v)
|
||||
]
|
||||
else
|
||||
_struct_kv k v
|
||||
) "" s;
|
||||
_struct_filt = s: _struct_concat (filterAttrs (_k: v: v != null) s);
|
||||
struct = s: "(${_struct_filt s})";
|
||||
toQuotedString = s: ''"${toString s}"'';
|
||||
|
||||
# make an attrset for struct serialisation
|
||||
serialise = {
|
||||
int = toString;
|
||||
float = toString;
|
||||
bool = boolToString;
|
||||
string = toString;
|
||||
path = toString;
|
||||
null = toString;
|
||||
set = struct;
|
||||
list = array;
|
||||
};
|
||||
|
||||
# define the key for a keybind
|
||||
defineBinding =
|
||||
binding:
|
||||
struct {
|
||||
inherit (binding) modifiers;
|
||||
key = if (binding.key == null) then null else toQuotedString binding.key;
|
||||
};
|
||||
|
||||
# map keybinding from list of attrset to hashmap of (mod,key): action
|
||||
_mapBindings =
|
||||
bindings:
|
||||
map (inner: { "${defineBinding inner}" = maybeToString (checkAction inner.action); }) bindings;
|
||||
mapBindings = bindings: assoc (_mapBindings bindings);
|
||||
|
||||
# check a keybinding's action
|
||||
# escape with quotes if it's a Spawn action
|
||||
checkAction =
|
||||
a:
|
||||
if typeOf a == "set" && a.type == "Spawn" then
|
||||
{
|
||||
inherit (a) type;
|
||||
data = toQuotedString a.data;
|
||||
}
|
||||
else
|
||||
a;
|
||||
|
||||
maybeToString =
|
||||
s:
|
||||
if typeOf s == "set" then
|
||||
concatStrings [
|
||||
s.type
|
||||
"("
|
||||
(toString s.data)
|
||||
")"
|
||||
]
|
||||
else
|
||||
s;
|
||||
|
||||
mapCosmicSettings =
|
||||
application: options:
|
||||
mapAttrs' (
|
||||
k: v:
|
||||
nameValuePair "cosmic/${application}/v${options.version}/${k}" {
|
||||
enable = true;
|
||||
text = serialise.${typeOf v} v;
|
||||
}
|
||||
) options.option;
|
||||
in
|
||||
# deconstructKeybindAttr = attr: mapAttrs' (
|
||||
# name: value:
|
||||
# ) attr;
|
||||
# rec_attr = lib.types.attrsOf (lib.types.oneOf lib.types.string rec_attr);
|
||||
{
|
||||
options.cosmic = {
|
||||
enable =
|
||||
with lib;
|
||||
mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
};
|
||||
|
||||
defaultKeybindings =
|
||||
with lib;
|
||||
mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
};
|
||||
|
||||
# binds = with lib;
|
||||
# mkOption {
|
||||
# default = {};
|
||||
# type = with types; rec_attr;
|
||||
# };
|
||||
|
||||
keybindings =
|
||||
with lib;
|
||||
mkOption {
|
||||
default = [ ];
|
||||
type =
|
||||
with types;
|
||||
listOf (submodule {
|
||||
options = {
|
||||
modifiers = mkOption {
|
||||
type = listOf str;
|
||||
default = [ ];
|
||||
};
|
||||
key = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
};
|
||||
action = mkOption {
|
||||
type = either str (submodule {
|
||||
options = {
|
||||
type = mkOption {
|
||||
type = str;
|
||||
};
|
||||
data = mkOption {
|
||||
type = oneOf [
|
||||
str
|
||||
int
|
||||
];
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
otherSettings =
|
||||
with lib;
|
||||
mkOption {
|
||||
default = { };
|
||||
type =
|
||||
with types;
|
||||
attrsOf (submodule {
|
||||
options = {
|
||||
version = mkOption {
|
||||
type = str;
|
||||
default = "1";
|
||||
};
|
||||
option = mkOption {
|
||||
type = attrsOf anything;
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
# TODO we need to split between system_actions, workspaces, custom
|
||||
config.xdg.configFile =
|
||||
{
|
||||
"cosmic/com.system76.CosmicSettings.Shortcuts/v1/custom".text =
|
||||
mapBindings config.cosmic.keybindings;
|
||||
"cosmic/com.system76.CosmicSettings.Shortcuts/v1/defaults" = {
|
||||
text = "{}";
|
||||
enable = !config.cosmic.defaultKeybindings;
|
||||
};
|
||||
}
|
||||
// concatMapAttrs (
|
||||
application: options: mapCosmicSettings application options
|
||||
) config.cosmic.otherSettings;
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkOption;
|
||||
inherit (builtins) typeOf listToAttrs;
|
||||
in
|
||||
{
|
||||
options.flatpaks = mkOption {
|
||||
default = [ ];
|
||||
type =
|
||||
with lib.types;
|
||||
listOf (
|
||||
either str (submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = str;
|
||||
};
|
||||
overrides = mkOption {
|
||||
type = attrsOf (attrsOf (either str (listOf str)));
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
})
|
||||
);
|
||||
};
|
||||
config.services.flatpak =
|
||||
let
|
||||
userOverrides = listToAttrs (
|
||||
map (
|
||||
fp:
|
||||
if (typeOf fp == "string") then
|
||||
{
|
||||
name = fp;
|
||||
value = { };
|
||||
}
|
||||
else
|
||||
{
|
||||
inherit (fp) name;
|
||||
value = fp.overrides;
|
||||
}
|
||||
) config.flatpaks
|
||||
);
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
update.auto.enable = true;
|
||||
packages = map (fp: if (typeOf fp == "set") then fp.name else fp) config.flatpaks;
|
||||
overrides = userOverrides // {
|
||||
global = {
|
||||
Context.sockets = [ "wayland" ];
|
||||
Environment = {
|
||||
ELECTRON_OZONE_PLATFORM_HINT = "auto";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,146 +0,0 @@
|
|||
/*
|
||||
This file is provided under the MIT licence:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
# Generated by npins. Do not modify; will be overwritten regularly
|
||||
let
|
||||
data = builtins.fromJSON (builtins.readFile ./sources.json);
|
||||
version = data.version;
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
|
||||
range =
|
||||
first: last: if first > last then [ ] else builtins.genList (n: first + n) (last - first + 1);
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257
|
||||
stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1));
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
|
||||
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
|
||||
concatMapStrings = f: list: concatStrings (map f list);
|
||||
concatStrings = builtins.concatStringsSep "";
|
||||
|
||||
# If the environment variable NPINS_OVERRIDE_${name} is set, then use
|
||||
# the path directly as opposed to the fetched source.
|
||||
# (Taken from Niv for compatibility)
|
||||
mayOverride =
|
||||
name: path:
|
||||
let
|
||||
envVarName = "NPINS_OVERRIDE_${saneName}";
|
||||
saneName = stringAsChars (c: if (builtins.match "[a-zA-Z0-9]" c) == null then "_" else c) name;
|
||||
ersatz = builtins.getEnv envVarName;
|
||||
in
|
||||
if ersatz == "" then
|
||||
path
|
||||
else
|
||||
# this turns the string into an actual Nix path (for both absolute and
|
||||
# relative paths)
|
||||
builtins.trace "Overriding path of \"${name}\" with \"${ersatz}\" due to set \"${envVarName}\"" (
|
||||
if builtins.substring 0 1 ersatz == "/" then
|
||||
/. + ersatz
|
||||
else
|
||||
/. + builtins.getEnv "PWD" + "/${ersatz}"
|
||||
);
|
||||
|
||||
mkSource =
|
||||
name: spec:
|
||||
assert spec ? type;
|
||||
let
|
||||
path =
|
||||
if spec.type == "Git" then
|
||||
mkGitSource spec
|
||||
else if spec.type == "GitRelease" then
|
||||
mkGitSource spec
|
||||
else if spec.type == "PyPi" then
|
||||
mkPyPiSource spec
|
||||
else if spec.type == "Channel" then
|
||||
mkChannelSource spec
|
||||
else if spec.type == "Tarball" then
|
||||
mkTarballSource spec
|
||||
else
|
||||
builtins.throw "Unknown source type ${spec.type}";
|
||||
in
|
||||
spec // { outPath = mayOverride name path; };
|
||||
|
||||
mkGitSource =
|
||||
{
|
||||
repository,
|
||||
revision,
|
||||
url ? null,
|
||||
submodules,
|
||||
hash,
|
||||
branch ? null,
|
||||
...
|
||||
}:
|
||||
assert repository ? type;
|
||||
# At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository
|
||||
# In the latter case, there we will always be an url to the tarball
|
||||
if url != null && !submodules then
|
||||
builtins.fetchTarball {
|
||||
inherit url;
|
||||
sha256 = hash; # FIXME: check nix version & use SRI hashes
|
||||
}
|
||||
else
|
||||
let
|
||||
url =
|
||||
if repository.type == "Git" then
|
||||
repository.url
|
||||
else if repository.type == "GitHub" then
|
||||
"https://github.com/${repository.owner}/${repository.repo}.git"
|
||||
else if repository.type == "GitLab" then
|
||||
"${repository.server}/${repository.repo_path}.git"
|
||||
else
|
||||
throw "Unrecognized repository type ${repository.type}";
|
||||
urlToName =
|
||||
url: rev:
|
||||
let
|
||||
matched = builtins.match "^.*/([^/]*)(\\.git)?$" url;
|
||||
|
||||
short = builtins.substring 0 7 rev;
|
||||
|
||||
appendShort = if (builtins.match "[a-f0-9]*" rev) != null then "-${short}" else "";
|
||||
in
|
||||
"${if matched == null then "source" else builtins.head matched}${appendShort}";
|
||||
name = urlToName url revision;
|
||||
in
|
||||
builtins.fetchGit {
|
||||
rev = revision;
|
||||
inherit name;
|
||||
# hash = hash;
|
||||
inherit url submodules;
|
||||
};
|
||||
|
||||
mkPyPiSource =
|
||||
{ url, hash, ... }:
|
||||
builtins.fetchurl {
|
||||
inherit url;
|
||||
sha256 = hash;
|
||||
};
|
||||
|
||||
mkChannelSource =
|
||||
{ url, hash, ... }:
|
||||
builtins.fetchTarball {
|
||||
inherit url;
|
||||
sha256 = hash;
|
||||
};
|
||||
|
||||
mkTarballSource =
|
||||
{
|
||||
url,
|
||||
locked_url ? url,
|
||||
hash,
|
||||
...
|
||||
}:
|
||||
builtins.fetchTarball {
|
||||
url = locked_url;
|
||||
sha256 = hash;
|
||||
};
|
||||
in
|
||||
if version == 5 then
|
||||
builtins.mapAttrs mkSource data.pins
|
||||
else
|
||||
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`"
|
|
@ -1,145 +0,0 @@
|
|||
{
|
||||
"pins": {
|
||||
"culr": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "Git",
|
||||
"url": "https://git.atagen.co/atagen/culr"
|
||||
},
|
||||
"branch": "master",
|
||||
"submodules": false,
|
||||
"revision": "40feebba44d4722706b66ac51e1997cb630c09c9",
|
||||
"url": null,
|
||||
"hash": "16rjgm4hj8dgkrr2maq9mnkdarvj3vrzw4y018abn340nfyr9rlr"
|
||||
},
|
||||
"helix": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "helix-editor",
|
||||
"repo": "helix"
|
||||
},
|
||||
"branch": "master",
|
||||
"submodules": false,
|
||||
"revision": "7ebf65002940d0ce8d6e59c3ec22c736f7d57d9c",
|
||||
"url": "https://github.com/helix-editor/helix/archive/7ebf65002940d0ce8d6e59c3ec22c736f7d57d9c.tar.gz",
|
||||
"hash": "0x34kv59yl787qa6gfd3bvakb8n4j67wj02zp0pcljzl8b7gcm68"
|
||||
},
|
||||
"hjem": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "feel-co",
|
||||
"repo": "hjem"
|
||||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "ae49a5a2e013c710d2b2cf046ae365d08eae75b3",
|
||||
"url": "https://github.com/feel-co/hjem/archive/ae49a5a2e013c710d2b2cf046ae365d08eae75b3.tar.gz",
|
||||
"hash": "1571dkq3ng9m9yip0fdzd4dqmckmjmpp7an7jp5kasqirhpd5w64"
|
||||
},
|
||||
"home-manager": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager"
|
||||
},
|
||||
"branch": "master",
|
||||
"submodules": false,
|
||||
"revision": "d094c6763c6ddb860580e7d3b4201f8f496a6836",
|
||||
"url": "https://github.com/nix-community/home-manager/archive/d094c6763c6ddb860580e7d3b4201f8f496a6836.tar.gz",
|
||||
"hash": "1d72lb88xq16sik4p8vjbmnj9w6p358rpzcwscrg0nyi2z1bf5sy"
|
||||
},
|
||||
"ironbar": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "JakeStanger",
|
||||
"repo": "ironbar"
|
||||
},
|
||||
"branch": "master",
|
||||
"submodules": false,
|
||||
"revision": "f2bc33ec26698f2aeb28d0c8e0c5605d5ffbcce1",
|
||||
"url": "https://github.com/JakeStanger/ironbar/archive/f2bc33ec26698f2aeb28d0c8e0c5605d5ffbcce1.tar.gz",
|
||||
"hash": "182gi303bdf887jfd38cfcnjdd5kf2917alz388wqmx7ck1wn2sf"
|
||||
},
|
||||
"lix": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "Git",
|
||||
"url": "https://git.lix.systems/lix-project/lix"
|
||||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "63d550938ba2a3690be987e884fe95e384708a82",
|
||||
"url": null,
|
||||
"hash": "1jnphmq9dxs26mk18q3b1flj6r29gwfiqjjxxaxp8qxa5m613ldg"
|
||||
},
|
||||
"lix-module": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "Git",
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module"
|
||||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "fa69ae26cc32dda178117b46487c2165c0e08316",
|
||||
"url": null,
|
||||
"hash": "13x2dca4s049m8fa2y4b45kgqnpk3cf26j0j0yascah32zzxn7rh"
|
||||
},
|
||||
"nix-vscode": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions"
|
||||
},
|
||||
"branch": "master",
|
||||
"submodules": false,
|
||||
"revision": "da51d4cab526bef885e8c95ab2b9455bfe0940d4",
|
||||
"url": "https://github.com/nix-community/nix-vscode-extensions/archive/da51d4cab526bef885e8c95ab2b9455bfe0940d4.tar.gz",
|
||||
"hash": "01bb7jnrv53j7lpgdqm6cgsijl8cm5i8v0zx30hslvzmpihg0ybl"
|
||||
},
|
||||
"nixos-cachyos-kernel": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "drakon64",
|
||||
"repo": "nixos-cachyos-kernel"
|
||||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "8516d89c4e0c4a25cea1be8431db3963359ee81b",
|
||||
"url": "https://github.com/drakon64/nixos-cachyos-kernel/archive/8516d89c4e0c4a25cea1be8431db3963359ee81b.tar.gz",
|
||||
"hash": "0ay9zqb4g7jx82pgcsnxy2nkyvk8y4xssska0afd7hxsimfnsl1s"
|
||||
},
|
||||
"nixpkgs": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs"
|
||||
},
|
||||
"branch": "nixos-unstable",
|
||||
"submodules": false,
|
||||
"revision": "42a1c966be226125b48c384171c44c651c236c22",
|
||||
"url": "https://github.com/nixos/nixpkgs/archive/42a1c966be226125b48c384171c44c651c236c22.tar.gz",
|
||||
"hash": "082dpl311xlspwm5l3h2hf10ww6l59m7k2g2hdrqs4kwwsj9x6mf"
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs"
|
||||
},
|
||||
"branch": "release-24.11",
|
||||
"submodules": false,
|
||||
"revision": "e1cd802516a4515cceedfdedcbae9ea4df50a371",
|
||||
"url": "https://github.com/nixos/nixpkgs/archive/e1cd802516a4515cceedfdedcbae9ea4df50a371.tar.gz",
|
||||
"hash": "0yp82j423ibabnp71k2fpprfnmd6sr52vfknk689gygvyask8mx4"
|
||||
}
|
||||
},
|
||||
"version": 5
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{ ... }:
|
||||
let
|
||||
sources = import ./npins;
|
||||
in
|
||||
{
|
||||
nixpkgs.flake.source = sources.nixpkgs;
|
||||
}
|
|
@ -1,17 +1,16 @@
|
|||
{
|
||||
nixpkgs,
|
||||
nix-rice,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
nix-rice,
|
||||
}:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
||||
inherit (nix-rice) kitty-themes;
|
||||
inherit (nix-rice.palette) toRGBShortHex;
|
||||
inherit (nix-rice.palette) toRGBShortHex toRGBHex;
|
||||
theme = kitty-themes.parseTheme ./pal.conf;
|
||||
in
|
||||
rec {
|
||||
palette = {
|
||||
palette = theme // {
|
||||
normal = {
|
||||
black = theme.color0;
|
||||
red = theme.color1;
|
||||
|
@ -40,7 +39,9 @@ rec {
|
|||
inherit (theme) cursor;
|
||||
# url = theme.url_color;
|
||||
};
|
||||
} // theme;
|
||||
hex = toRGBHex palette;
|
||||
shortHex = toRGBShortHex palette;
|
||||
};
|
||||
|
||||
fonts =
|
||||
let
|
||||
|
@ -103,18 +104,22 @@ rec {
|
|||
borders = {
|
||||
thickness = 6;
|
||||
rounding = 0;
|
||||
gaps_in = 16;
|
||||
gaps_in = 32;
|
||||
gaps_out = 72;
|
||||
};
|
||||
|
||||
bg = {
|
||||
image = pkgs.callPackage ./wallpaper.nix { } {
|
||||
palette = toRGBShortHex palette;
|
||||
wallpaper = builtins.path rec {
|
||||
name = "wallpaper.jpg";
|
||||
path = ../${name};
|
||||
sha256 = "2db3f9d0397fbd4746ada297bd14c0c7d3e22c7d4e894968fcfece90bbfb902a";
|
||||
};
|
||||
wallpaper =
|
||||
let
|
||||
name = "wallpaper.jpg";
|
||||
in
|
||||
builtins.path {
|
||||
inherit name;
|
||||
path = ./${name};
|
||||
sha256 = "2db3f9d0397fbd4746ada297bd14c0c7d3e22c7d4e894968fcfece90bbfb902a";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -126,15 +131,11 @@ rec {
|
|||
name = "Afterglow-Recolored-Dracula-Orange";
|
||||
};
|
||||
|
||||
plymouth =
|
||||
let
|
||||
theme = "spinner_alt";
|
||||
in
|
||||
{
|
||||
inherit theme;
|
||||
font = "${fonts.sans.package}/share/fonts/truetype/InriaSans-Regular.ttf";
|
||||
themePackages = [
|
||||
(pkgs.adi1090x-plymouth-themes.override { selected_themes = [ theme ]; })
|
||||
];
|
||||
};
|
||||
plymouth = {
|
||||
theme = "starship";
|
||||
font = "${fonts.sans.package}/share/fonts/truetype/InriaSans-Regular.ttf";
|
||||
themePackages = [
|
||||
inputs.hudcore.packages.${pkgs.system}.default
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,12 +1,6 @@
|
|||
{ pkgs }:
|
||||
{ palette }:
|
||||
let
|
||||
rendersvg = pkgs.runCommand "rendersvg" { } ''
|
||||
mkdir -p $out/bin
|
||||
ln -s ${pkgs.resvg}/bin/resvg $out/bin/rendersvg
|
||||
'';
|
||||
in
|
||||
pkgs.stdenv.mkDerivation rec {
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "generated-gtk-theme-nix-rice";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "nana-4";
|
||||
|
@ -14,17 +8,21 @@ pkgs.stdenv.mkDerivation rec {
|
|||
rev = "d7f59a37ef51f893c28b55dc344146e04b2cd52c";
|
||||
sha256 = "sha256-PnpFAmKEpfg3wBwShLYviZybWQQltcw7fpsQkTUZtww=";
|
||||
};
|
||||
buildInputs = with pkgs; [
|
||||
sassc
|
||||
bc
|
||||
which
|
||||
rendersvg
|
||||
meson
|
||||
ninja
|
||||
nodePackages.sass
|
||||
gtk4.dev
|
||||
optipng
|
||||
];
|
||||
buildInputs = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
sassc
|
||||
bc
|
||||
which
|
||||
rendersvg
|
||||
meson
|
||||
optipng
|
||||
ninja
|
||||
;
|
||||
inherit (pkgs.nodePackages)
|
||||
sass
|
||||
;
|
||||
inherit (pkgs.gtk4) dev;
|
||||
};
|
||||
phases = [
|
||||
"unpackPhase"
|
||||
"installPhase"
|
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 2.7 MiB |
|
@ -1,10 +1,15 @@
|
|||
{ pkgs, lib }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
stdenv,
|
||||
...
|
||||
}:
|
||||
{
|
||||
palette,
|
||||
wallpaper,
|
||||
}:
|
||||
let
|
||||
str_pal =
|
||||
strPal =
|
||||
let
|
||||
inherit (lib) concatStringsSep;
|
||||
inherit (builtins) foldl' attrValues;
|
||||
|
@ -13,7 +18,7 @@ let
|
|||
foldl' (acc: el: acc ++ (attrValues el)) [ ] [ palette.normal palette.bright palette.util ]
|
||||
);
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
stdenv.mkDerivation {
|
||||
name = "generated-wallpaper.png";
|
||||
src = wallpaper;
|
||||
buildInputs = [
|
||||
|
@ -23,7 +28,7 @@ pkgs.stdenv.mkDerivation {
|
|||
phases = [ "installPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
echo -e "Generating wallpaper from ${wallpaper} using palette:\n${str_pal}.."
|
||||
${pkgs.lib.getExe pkgs.lutgen} apply --lum 0.8 -l 10 -s 128 -n 8 -o $out ${wallpaper} -- ${str_pal}
|
||||
echo -e "Generating wallpaper from ${wallpaper} using palette:\n${strPal}.."
|
||||
${lib.getExe pkgs.lutgen} apply --lum 0.8 -l 10 -s 128 -n 8 -o $out ${wallpaper} -- ${strPal}
|
||||
'';
|
||||
}
|
|
@ -58,7 +58,7 @@
|
|||
services.power-profiles-daemon.enable = false;
|
||||
services.tlp.enable = true;
|
||||
|
||||
environment.sessionVariables = rec {
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=5";
|
||||
EDITOR = "hx";
|
||||
|
@ -77,16 +77,18 @@
|
|||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
wl-clipboard
|
||||
wl-clipboard-x11
|
||||
xclip
|
||||
];
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
wl-clipboard
|
||||
wl-clipboard-x11
|
||||
xclip
|
||||
;
|
||||
};
|
||||
|
||||
networking.hostName = "adrift"; # Define your hostname.
|
||||
users.users.plank = {
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
nix = {
|
||||
settings = {
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -5,49 +5,12 @@
|
|||
mainUser,
|
||||
...
|
||||
}:
|
||||
let
|
||||
getFlakePackage = package: inputs."${package}".packages.x86_64-linux.default;
|
||||
in
|
||||
{
|
||||
# these settings propagate to home-manager's nixpkgs
|
||||
nixpkgs = {
|
||||
overlays = [
|
||||
# inputs.nix-rice.overlays.default
|
||||
inputs.helix.overlays.default
|
||||
inputs.nil.overlays.nil
|
||||
inputs.niri.overlays.niri
|
||||
];
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: true;
|
||||
cudaSupport = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
# add flake inputs to our registry to allow global use
|
||||
registry = lib.mapAttrs (_: value: { flake = value; }) inputs;
|
||||
settings = {
|
||||
# trusted-users = ["bolt" "plank"];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
"pipe-operator"
|
||||
];
|
||||
substitute = true;
|
||||
};
|
||||
extraOptions = ''
|
||||
keep-outputs = true
|
||||
keep-derivations = true
|
||||
'';
|
||||
optimise.automatic = true;
|
||||
# package = pkgs.lix;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./modules/network.nix
|
||||
./modules/term.nix
|
||||
./modules/systemdboot.nix
|
||||
./modules/limine.nix
|
||||
./modules/sound.nix
|
||||
./modules/sydney.nix
|
||||
./modules/docs.nix
|
||||
|
@ -57,11 +20,6 @@ in
|
|||
./modules/culr.nix
|
||||
];
|
||||
|
||||
programs.meat = {
|
||||
enable = true;
|
||||
flake = "/home/${mainUser}/.nix";
|
||||
};
|
||||
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.enableAllFirmware = true;
|
||||
|
||||
|
@ -102,20 +60,12 @@ in
|
|||
# services.tailscale.enable = true;
|
||||
|
||||
# TODO - move these to more appropriate places
|
||||
environment.systemPackages = with pkgs; [
|
||||
curl
|
||||
eza
|
||||
git
|
||||
jujutsu
|
||||
];
|
||||
|
||||
# services.atuin.enable = true;
|
||||
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 3d --keep 3";
|
||||
package = getFlakePackage "nh";
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
curl
|
||||
eza
|
||||
git
|
||||
;
|
||||
};
|
||||
|
||||
programs.nix-index-database.comma.enable = true;
|
||||
|
@ -131,5 +81,5 @@ in
|
|||
|
||||
systemd.user.extraConfig = "LogLevel=debug";
|
||||
|
||||
system.nixos.tags = [ "fatcock" ];
|
||||
system.nixos.tags = [ "fatcock-xxl" ];
|
||||
}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
services.desktopManager.cosmic = {
|
||||
enable = true;
|
||||
};
|
||||
environment.cosmic.excludePackages = with pkgs; [
|
||||
cosmic-store
|
||||
cosmic-edit
|
||||
cosmic-term
|
||||
];
|
||||
services.displayManager.cosmic-greeter.enable = true;
|
||||
services.system76-scheduler.enable = true;
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
man-pages
|
||||
man-pages-posix
|
||||
];
|
||||
environment.systemPackages = {
|
||||
inherit (pkgs)
|
||||
man-pages
|
||||
man-pages-posix
|
||||
;
|
||||
};
|
||||
|
||||
documentation.dev.enable = true;
|
||||
documentation.man.enable = true;
|
||||
|
|
42
system/modules/limine.nix
Normal file
42
system/modules/limine.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
lib,
|
||||
rice,
|
||||
...
|
||||
}:
|
||||
{
|
||||
boot.loader.limine = {
|
||||
enable = true;
|
||||
style =
|
||||
let
|
||||
pal = rice.palette.shortHex;
|
||||
in
|
||||
{
|
||||
wallpapers = [ ../../wallpaper.jpg ];
|
||||
interface = {
|
||||
brandingColor = 1;
|
||||
branding = "welcome to quiver";
|
||||
};
|
||||
graphicalTerminal =
|
||||
let
|
||||
getPal = p: builtins.attrValues p |> builtins.concatStringsSep ";";
|
||||
in
|
||||
{
|
||||
palette = getPal pal.normal;
|
||||
brightPalette = getPal pal.bright;
|
||||
marginGradient = 0;
|
||||
margin = 256;
|
||||
foreground = pal.util.fg;
|
||||
background = "20" + pal.util.bg;
|
||||
brightForeground = pal.bright.yellow;
|
||||
brightBackground = pal.util.bg;
|
||||
};
|
||||
backdrop = pal.util.bg;
|
||||
};
|
||||
maxGenerations = 5;
|
||||
extraEntries = ''
|
||||
/Windows
|
||||
protocol: efi
|
||||
path: boot():/EFI/Microsoft/Boot/bootmgfw.efi
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
pkgs,
|
||||
mainUser,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
@ -21,6 +21,13 @@
|
|||
};
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
package = pkgs.niri-unstable;
|
||||
package = inputs.niri.packages.x86_64-linux.niri-unstable;
|
||||
};
|
||||
services.niri-session-manager = {
|
||||
enable = true;
|
||||
# settings = {
|
||||
# save-interval = 5;
|
||||
# max-backup-count = 12;
|
||||
# };
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,63 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
home-manager
|
||||
cachix
|
||||
nixfmt-rfc-style
|
||||
nil
|
||||
statix
|
||||
deadnix
|
||||
npins
|
||||
];
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
mainUser,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# these settings propagate to home-manager's nixpkgs
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: true;
|
||||
cudaSupport = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
# add flake inputs to our registry to allow global use
|
||||
registry = lib.mapAttrs (_: value: { flake = value; }) inputs;
|
||||
settings = {
|
||||
# trusted-users = ["bolt" "plank"];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
"pipe-operator"
|
||||
];
|
||||
substitute = true;
|
||||
};
|
||||
extraOptions = ''
|
||||
keep-outputs = true
|
||||
keep-derivations = true
|
||||
'';
|
||||
optimise.automatic = true;
|
||||
# package = pkgs.lix;
|
||||
};
|
||||
|
||||
# services.smooooth = {
|
||||
# enable = true;
|
||||
# path = "/home/${mainUser}/.nix";
|
||||
# blockers = [
|
||||
# "hx"
|
||||
# {
|
||||
# nix = "die";
|
||||
# }
|
||||
# ];
|
||||
# nixPackage = pkgs.lix;
|
||||
# };
|
||||
|
||||
programs.meat = {
|
||||
enable = true;
|
||||
flake = "/home/${mainUser}/.nix";
|
||||
};
|
||||
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
home-manager
|
||||
cachix
|
||||
nixfmt-rfc-style
|
||||
;
|
||||
inherit (inputs.nil.packages.${pkgs.system}) nil;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
inherit (pkgs) fish elvish;
|
||||
inherit (pkgs) fish;
|
||||
in
|
||||
{
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
};
|
||||
programs.autojump.enable = true;
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
environment.systemPackages = [
|
||||
fish
|
||||
];
|
||||
|
|
|
@ -51,8 +51,11 @@
|
|||
"vt.global_cursor_default=0"
|
||||
];
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linuxPackages_cachyos;
|
||||
# pkgs.linuxPackages_xanmod_latest;
|
||||
services.scx = {
|
||||
enable = true;
|
||||
scheduler = "scx_bpfland";
|
||||
};
|
||||
boot.kernelPackages = pkgs.linuxPackages_cachyos;
|
||||
boot.supportedFilesystems = {
|
||||
ntfs = true;
|
||||
btrfs = true;
|
||||
|
@ -61,10 +64,10 @@
|
|||
boot.loader.systemd-boot.configurationLimit = 5;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
boot.plymouth = {
|
||||
enable = true;
|
||||
inherit (rice.plymouth) theme themePackages font;
|
||||
};
|
||||
# boot.plymouth = {
|
||||
# enable = true;
|
||||
# inherit (rice.plymouth) theme themePackages font;
|
||||
# };
|
||||
|
||||
security.tpm2.enable = true;
|
||||
|
||||
|
@ -90,10 +93,6 @@
|
|||
|
||||
nix.settings.trusted-users = [ "bolt" ];
|
||||
|
||||
virtualisation.lxc = {
|
||||
unprivilegedContainers = true;
|
||||
enable = true;
|
||||
};
|
||||
virtualisation.oci-containers.backend = "podman";
|
||||
hardware.nvidia-container-toolkit.enable = true;
|
||||
virtualisation = {
|
||||
|
@ -130,14 +129,22 @@
|
|||
# motherboard = "amd";
|
||||
# };
|
||||
|
||||
# hardware.ckb-next.enable = true;
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
wl-clipboard
|
||||
wl-clipboard-x11
|
||||
xclip
|
||||
;
|
||||
};
|
||||
hardware.ckb-next.enable = true;
|
||||
environment.systemPackages =
|
||||
builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
wl-clipboard
|
||||
wl-clipboard-x11
|
||||
xclip
|
||||
;
|
||||
inherit (pkgs.kdePackages) qtbase qtdeclarative;
|
||||
}
|
||||
++ [
|
||||
(inputs.quickshell.packages.${pkgs.system}.default.override {
|
||||
withHyprland = false;
|
||||
withI3 = false;
|
||||
})
|
||||
];
|
||||
programs.fuse.userAllowOther = true;
|
||||
services.libinput.mouse = {
|
||||
accelProfile = "flat";
|
||||
|
@ -189,4 +196,7 @@
|
|||
DATABASE_URL = "sqlite:///${config.services.open-webui.stateDir}/newdb.db";
|
||||
};
|
||||
};
|
||||
|
||||
# for quickshell
|
||||
qt.enable = true;
|
||||
}
|
||||
|
|
|
@ -7,23 +7,15 @@
|
|||
"https://cache.nixos.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://helix.cachix.org"
|
||||
"https://cuda-maintainers.cachix.org"
|
||||
"https://cache.garnix.io"
|
||||
"https://walker-git.cachix.org"
|
||||
"https://anmonteiro.nix-cache.workers.dev"
|
||||
"https://viperml.cachix.org"
|
||||
"https://drakon64-nixos-cachyos-kernel.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
||||
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
||||
"walker-git.cachix.org-1:vmC0ocfPWh0S/vRAQGtChuiZBTAe4wiKDeyyXM0/7pM="
|
||||
"ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY="
|
||||
"viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8="
|
||||
"drakon64-nixos-cachyos-kernel.cachix.org-1:J3gjZ9N6S05pyLA/P0M5y7jXpSxO/i0rshrieQJi5D0="
|
||||
];
|
||||
};
|
||||
}
|
7
util/get-modules.nix
Normal file
7
util/get-modules.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ inputs }:
|
||||
let
|
||||
inherit (inputs.nixpkgs) lib;
|
||||
in
|
||||
l:
|
||||
lib.filterAttrs (_: v: builtins.elem v l) inputs
|
||||
|> lib.mapAttrsToList (n: v: v.nixosModules.${n} or v.nixosModules.default)
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
rice = import ./rice.nix;
|
||||
inherit (inputs.comfyui.overlays) comfyui;
|
||||
inherit (inputs.comfyui-plugins.overlays) comfyui-plugins;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue