mirror of
https://github.com/EdenQwQ/nixos.git
synced 2025-12-26 10:14:58 +08:00
misc
This commit is contained in:
parent
d9cd5c6486
commit
ced09b9dcd
9 changed files with 579 additions and 2 deletions
|
|
@ -6,6 +6,7 @@
|
|||
./mako.nix
|
||||
./niri
|
||||
./swhkd.nix
|
||||
./scroll
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
swww
|
||||
|
|
|
|||
418
home/programs/desktop/scroll/default.nix
Normal file
418
home/programs/desktop/scroll/default.nix
Normal file
|
|
@ -0,0 +1,418 @@
|
|||
{ config, ... }:
|
||||
let
|
||||
outputConf =
|
||||
builtins.attrNames config.monitors
|
||||
|> map (
|
||||
name:
|
||||
with config.monitors.${name};
|
||||
"output ${name} resolution ${toString mode.width}x${toString mode.height} position ${toString position.x},${toString position.y} scale ${toString scale} transform ${360 - rotation |> toString}"
|
||||
)
|
||||
|> builtins.concatStringsSep "\n";
|
||||
in
|
||||
{
|
||||
xdg.configFile."scroll/config".text = with config.lib.stylix.colors; ''
|
||||
# Default config for scroll
|
||||
#
|
||||
# Copy this to ~/.config/scroll/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 scroll` for a complete reference.
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term kitty
|
||||
# Your preferred application launcher
|
||||
set $menu sh -c $(tofi-run)
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in @datadir@/backgrounds/scroll/)
|
||||
# output * bg @datadir@/backgrounds/scroll/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||
#
|
||||
# You can get the names of your outputs by running: scrollmsg -t get_outputs
|
||||
${outputConf}
|
||||
# output HDMI-A-1 resolution 2560x1600 position 0,60 scale 1.6 transform 270
|
||||
# output eDP-1 resolution 2240x1400 position 1000,0 scale 1.6
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# exec swayidle -w \
|
||||
# timeout 300 'swaylock -f -c 000000' \
|
||||
# timeout 600 'scrollmsg "output * power off"' resume 'scrollmsg "output * power on"' \
|
||||
# before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||
# dwt enabled
|
||||
# tap enabled
|
||||
# natural_scroll enabled
|
||||
# middle_emulation enabled
|
||||
# }
|
||||
#
|
||||
# You can get the names of your inputs by running: scrollmsg -t get_inputs
|
||||
# Read `man 5 scroll-input` for more information about this section.
|
||||
input "1267:12815:VEN_04F3:00_04F3:320F_Touchpad" {
|
||||
tap enabled
|
||||
drag_lock disabled
|
||||
}
|
||||
|
||||
### Windows defaults
|
||||
default_border pixel 4
|
||||
gaps inner 5
|
||||
gaps outer 5
|
||||
client.focused ${base0E} ${base01} ${base05} ${base0A} ${base0E}
|
||||
client.focused_inactive ${base03} ${base01} ${base05} ${base0A} ${base03}
|
||||
client.unfocused ${base03} ${base01} ${base05} ${base0A} ${base03}
|
||||
|
||||
# Idle inhibit for fullscreen windows
|
||||
for_window [all] inhibit_idle fullscreen
|
||||
|
||||
# Layout settings
|
||||
layout_default_width 0.666666667
|
||||
layout_default_height 1.0
|
||||
layout_widths [0.33333333 0.5 0.666666667 1.0]
|
||||
layout_heights [0.33333333 0.5 0.666666667 1.0]
|
||||
|
||||
fullscreen_movefocus true
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+p exec $menu
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Exit scroll (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+x exec scrollnag -t warning -m 'You pressed the exit shortcut. Do you really want to exit scroll? This will end your Wayland session.' -B 'Yes, exit scroll' 'scrollmsg exit'
|
||||
|
||||
# Layout mode
|
||||
bindsym $mod+alt+h set_mode h
|
||||
bindsym $mod+alt+v set_mode v
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
bindsym $mod+home focus beginning
|
||||
bindsym $mod+end focus end
|
||||
# Move the focused window with the same, but add Ctrl
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
bindsym $mod+Shift+home move beginning
|
||||
bindsym $mod+Shift+end move end
|
||||
# # nomode
|
||||
# bindsym $mod+Alt+$left move left nomode
|
||||
# bindsym $mod+Alt+$down move down nomode
|
||||
# bindsym $mod+Alt+$up move up nomode
|
||||
# bindsym $mod+Alt+$right move right nomode
|
||||
# bindsym $mod+Alt+home move beginning nomode
|
||||
# bindsym $mod+Alt+end move end nomode
|
||||
|
||||
# Focus other monitors
|
||||
bindsym $mod+Ctrl+$left focus output left
|
||||
bindsym $mod+Ctrl+$down focus output down
|
||||
bindsym $mod+Ctrl+$up focus output up
|
||||
bindsym $mod+Ctrl+$right focus output right
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1; workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2; workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3; workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4; workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5; workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6; workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7; workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8; workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9; workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10; workspace number 10
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
|
||||
bindsym $mod+Ctrl+1 move workspace to output left
|
||||
bindsym $mod+Ctrl+2 move workspace to output right
|
||||
|
||||
# Scaling
|
||||
# Workspace
|
||||
bindsym $mod+Shift+comma scale_workspace incr -0.05
|
||||
bindsym --whole-window $mod+Shift+button4 scale_workspace incr -0.05
|
||||
bindsym $mod+Shift+period scale_workspace incr 0.05
|
||||
bindsym --whole-window $mod+Shift+button5 scale_workspace incr 0.05
|
||||
bindsym $mod+Shift+Ctrl+period scale_workspace reset
|
||||
|
||||
# Overview
|
||||
bindsym --no-repeat $mod+w scale_workspace overview
|
||||
bindsym --whole-window button8 scale_workspace overview
|
||||
|
||||
# Jump
|
||||
# jump_labels_color #9e1530FF
|
||||
# jump_labels_background #15309eFF
|
||||
# jump_labels_scale 0.9
|
||||
# jump_labels_keys asdf
|
||||
bindsym --no-repeat $mod+slash jump
|
||||
|
||||
# Content
|
||||
bindsym $mod+comma scale_content incr -0.05
|
||||
bindsym --whole-window $mod+button4 scale_content incr -0.05
|
||||
bindsym $mod+period scale_content incr 0.05
|
||||
bindsym --whole-window $mod+button5 scale_content incr 0.05
|
||||
bindsym $mod+Ctrl+period scale_content reset
|
||||
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
bindsym $mod+Ctrl+f fullscreen global
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+y focus mode_toggle
|
||||
# Float a window
|
||||
bindsym $mod+Shift+f floating toggle
|
||||
|
||||
# Toggle sticky
|
||||
bindsym $mod+a sticky toggle
|
||||
|
||||
# Marks
|
||||
# bindsym $mod+m exec scroll-mark-toggle.sh
|
||||
# bindsym $mod+Shift+m exec scroll-mark-remove.sh
|
||||
# bindsym $mod+apostrophe exec scroll-mark-switch.sh
|
||||
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Scroll has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# Move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+z move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+z scratchpad show
|
||||
|
||||
#
|
||||
# Mode modifiers
|
||||
#
|
||||
# mode "modifiers" {
|
||||
# bindsym $right set_mode after; mode default
|
||||
# bindsym $left set_mode before; mode default
|
||||
# bindsym home set_mode beginning; mode default
|
||||
# bindsym end set_mode end; mode default
|
||||
# bindsym $up set_mode focus; mode default
|
||||
# bindsym $down set_mode nofocus; mode default
|
||||
# bindsym h set_mode center_horiz; mode default
|
||||
# bindsym Shift+h set_mode nocenter_horiz; mode default
|
||||
# bindsym v set_mode center_vert; mode default
|
||||
# bindsym Shift+v set_mode nocenter_vert; mode default
|
||||
# bindsym r set_mode reorder_auto; mode default
|
||||
# bindsym Shift+r set_mode noreorder_auto; mode default
|
||||
#
|
||||
# # Return to default mode
|
||||
# bindsym Escape mode "default"
|
||||
# }
|
||||
# bindsym $mod+backslash mode "modifiers"
|
||||
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
bindsym $mod+minus cycle_size h prev
|
||||
bindsym $mod+equal cycle_size h next
|
||||
bindsym $mod+Shift+minus cycle_size v prev
|
||||
bindsym $mod+Shift+equal cycle_size v next
|
||||
|
||||
mode "setsizeh" {
|
||||
bindsym 1 set_size h 0.125
|
||||
bindsym 2 set_size h 0.1666666667
|
||||
bindsym 3 set_size h 0.25
|
||||
bindsym 4 set_size h 0.333333333
|
||||
bindsym 5 set_size h 0.375
|
||||
bindsym 6 set_size h 0.5
|
||||
bindsym 7 set_size h 0.625
|
||||
bindsym 8 set_size h 0.6666666667
|
||||
bindsym 9 set_size h 0.75
|
||||
bindsym 0 set_size h 0.833333333
|
||||
bindsym minus set_size h 0.875
|
||||
bindsym equal set_size h 1.0
|
||||
|
||||
# Return to default mode
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+b mode "setsizeh"
|
||||
|
||||
mode "setsizev" {
|
||||
bindsym 1 set_size v 0.125
|
||||
bindsym 2 set_size v 0.1666666667
|
||||
bindsym 3 set_size v 0.25
|
||||
bindsym 4 set_size v 0.333333333
|
||||
bindsym 5 set_size v 0.375
|
||||
bindsym 6 set_size v 0.5
|
||||
bindsym 7 set_size v 0.625
|
||||
bindsym 8 set_size v 0.6666666667
|
||||
bindsym 9 set_size v 0.75
|
||||
bindsym 0 set_size v 0.833333333
|
||||
bindsym minus set_size v 0.875
|
||||
bindsym equal set_size v 1.0
|
||||
|
||||
# Return to default mode
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+Shift+b mode "setsizev"
|
||||
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 100px
|
||||
bindsym $down resize grow height 100px
|
||||
bindsym $up resize shrink height 100px
|
||||
bindsym $right resize grow width 100px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+Shift+r mode "resize"
|
||||
|
||||
mode "align" {
|
||||
bindsym c align center; mode default
|
||||
bindsym m align middle; mode default
|
||||
bindsym r align reset; mode default
|
||||
bindsym $left align left; mode default
|
||||
bindsym $right align right; mode default
|
||||
bindsym $up align up; mode default
|
||||
bindsym $down align down; mode default
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+c mode "align"
|
||||
|
||||
# mode "fit_size" {
|
||||
# bindsym w fit_size h visible proportional; mode default
|
||||
# bindsym Shift+w fit_size v visible proportional; mode default
|
||||
# bindsym Ctrl+w fit_size h visible equal; mode default
|
||||
# bindsym Ctrl+Shift+w fit_size v visible equal; mode default
|
||||
#
|
||||
# bindsym $right fit_size h toend proportional; mode default
|
||||
# bindsym Shift+$right fit_size v toend proportional; mode default
|
||||
# bindsym Ctrl+$right fit_size h toend equal; mode default
|
||||
# bindsym Ctrl+Shift+$right fit_size v toend equal; mode default
|
||||
#
|
||||
# bindsym $left fit_size h tobeg proportional; mode default
|
||||
# bindsym Shift+$left fit_size v tobeg proportional; mode default
|
||||
# bindsym Ctrl+$left fit_size h tobeg equal; mode default
|
||||
# bindsym Ctrl+Shift+$left fit_size v tobeg equal; mode default
|
||||
#
|
||||
# bindsym $up fit_size h active proportional; mode default
|
||||
# bindsym Shift+$up fit_size v active proportional; mode default
|
||||
# #bindsym Ctrl+$up fit_size h active equal; mode default
|
||||
# #bindsym Ctrl+Shift+$up fit_size v active equal; mode default
|
||||
#
|
||||
# bindsym $down fit_size h all proportional; mode default
|
||||
# bindsym Shift+$down fit_size v all proportional; mode default
|
||||
# bindsym Ctrl+$down fit_size h all equal; mode default
|
||||
# bindsym Ctrl+Shift+$down fit_size v all equal; mode default
|
||||
# }
|
||||
# bindsym $mod+w mode "fit_size"
|
||||
|
||||
#
|
||||
# Utilities:
|
||||
#
|
||||
# Special keys to adjust volume via PulseAudio
|
||||
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
|
||||
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
|
||||
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
|
||||
bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
|
||||
# Special keys to adjust brightness via brightnessctl
|
||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
|
||||
# Special key to take a screenshot with grim
|
||||
bindsym Print exec grim
|
||||
|
||||
|
||||
focus_wrapping no
|
||||
|
||||
bindgesture swipe:4:right workspace next
|
||||
bindgesture swipe:4:left workspace prev
|
||||
|
||||
bindgesture swipe:4:up scale_workspace overview
|
||||
bindgesture swipe:4:down jump
|
||||
|
||||
bindgesture swipe:3:right focus right
|
||||
bindgesture swipe:3:left focus left
|
||||
bindgesture swipe:3:up focus up
|
||||
bindgesture swipe:3:down focus down
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 scroll-bar` for more information about this section.
|
||||
# bar {
|
||||
# position top
|
||||
#
|
||||
# # When the status_command prints a new line to stdout, scrollbar updates.
|
||||
# # The default just shows the current date and time.
|
||||
# status_command while date +'%Y-%m-%d %X'; do sleep 1; done
|
||||
#
|
||||
# colors {
|
||||
# statusline #ffffff
|
||||
# background #323232
|
||||
# inactive_workspace #32323200 #32323200 #5c5c5c
|
||||
# }
|
||||
# }
|
||||
#
|
||||
# include @sysconfdir@/scroll/config.d/*
|
||||
'';
|
||||
}
|
||||
|
|
@ -7,10 +7,10 @@
|
|||
"everforest"
|
||||
"petrichor-downpour"
|
||||
{
|
||||
name = "frieren-butterflies-dark";
|
||||
name = "celestia-lunar-dark";
|
||||
fromImage = {
|
||||
enable = true;
|
||||
image = "frieren-butterflies.jpg";
|
||||
image = "celestia-lunar.jpg";
|
||||
method = "matugen";
|
||||
passthru.scheme = "scheme-expressive";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -65,5 +65,9 @@
|
|||
name = "zzzzoka-gbc.jpg";
|
||||
convertMethod = "gonord";
|
||||
}
|
||||
{
|
||||
name = "celestia-lunar.jpg";
|
||||
convertMethod = "lutgen";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ let
|
|||
languageserver
|
||||
styler
|
||||
openxlsx
|
||||
ez
|
||||
multicmp
|
||||
];
|
||||
in
|
||||
{
|
||||
|
|
|
|||
|
|
@ -56,6 +56,11 @@ let
|
|||
url = "https://i.imgur.com/qE6Pr45.jpg";
|
||||
sha256 = "1li5ypdvlvdpihiplf5mjj0lvf9gbcwyjslpxgla6wz0fzrwnvgi";
|
||||
}
|
||||
{
|
||||
name = "celestia-lunar.jpg";
|
||||
url = "https://i.imgur.com/QIhYwtH.jpg";
|
||||
sha256 = "04dsm4dpv2mddzw7vw77bb0s2mkd4n54hnfa277181smnns7cdzz";
|
||||
}
|
||||
];
|
||||
|
||||
wallpaperSrcs = map fetchurl wallpapers;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
{
|
||||
python-basic = {
|
||||
path = ./python-basic;
|
||||
description = "Python with basic modules for organizing data";
|
||||
};
|
||||
|
||||
python-analyze = {
|
||||
path = ./python-analyze;
|
||||
description = "Python with modules for analyzing data";
|
||||
|
|
|
|||
96
templates/python-basic/flake.lock
generated
Normal file
96
templates/python-basic/flake.lock
generated
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741352980,
|
||||
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1739451785,
|
||||
"narHash": "sha256-3ebRdThRic9bHMuNi2IAA/ek9b32bsy8F5R4SvGTIog=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1128e89fd5e11bb25aedbfc287733c6502202ea9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1740877520,
|
||||
"narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "147dee35aab2193b174e4c0868bd80ead5ce755c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1735554305,
|
||||
"narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742370146,
|
||||
"narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "adc195eef5da3606891cedf80c0d9ce2d3190808",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
46
templates/python-basic/flake.nix
Normal file
46
templates/python-basic/flake.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
treefmt-nix.url = "github:numtide/treefmt-nix";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ ... }@inputs:
|
||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||
systems = [ "x86_64-linux" ];
|
||||
imports = [
|
||||
inputs.treefmt-nix.flakeModule
|
||||
];
|
||||
perSystem =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
devShells = {
|
||||
default =
|
||||
let
|
||||
python = pkgs.python312;
|
||||
in
|
||||
pkgs.mkShellNoCC {
|
||||
buildInputs = [
|
||||
(python.withPackages (
|
||||
ps: with ps; [
|
||||
numpy
|
||||
pandas
|
||||
openpyxl
|
||||
scipy
|
||||
]
|
||||
))
|
||||
];
|
||||
shellHook = ''
|
||||
fish
|
||||
'';
|
||||
};
|
||||
};
|
||||
treefmt = {
|
||||
projectRootFile = "flake.nix";
|
||||
programs.nixfmt.enable = true;
|
||||
programs.ruff-format.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue