This commit is contained in:
Lucy Hochkamp 2024-11-03 16:56:05 +01:00
parent c309e5a4c2
commit ae9f1cfdfb
No known key found for this signature in database
5 changed files with 360 additions and 127 deletions

94
flake.lock generated
View file

@ -45,6 +45,21 @@
"type": "github" "type": "github"
} }
}, },
"crane_2": {
"locked": {
"lastModified": 1730060262,
"narHash": "sha256-RMgSVkZ9H03sxC+Vh4jxtLTCzSjPq18UWpiM0gq6shQ=",
"owner": "ipetkov",
"repo": "crane",
"rev": "498d9f122c413ee1154e8131ace5a35a80d8fa76",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -293,6 +308,29 @@
"type": "github" "type": "github"
} }
}, },
"ironbar": {
"inputs": {
"crane": "crane_2",
"naersk": "naersk",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay_3"
},
"locked": {
"lastModified": 1730449396,
"narHash": "sha256-EMUiH4wPXSv2xfEygVlxEoPU67EaUYumMCmnclQql94=",
"owner": "JakeStanger",
"repo": "ironbar",
"rev": "c7cf896164334206f07647789d5364d90f05862a",
"type": "github"
},
"original": {
"owner": "JakeStanger",
"repo": "ironbar",
"type": "github"
}
},
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -365,6 +403,24 @@
"type": "github" "type": "github"
} }
}, },
"naersk": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1721727458,
"narHash": "sha256-r/xppY958gmZ4oTfLiHN0ZGuQ+RSTijDblVgVLFi1mw=",
"owner": "nix-community",
"repo": "naersk",
"rev": "3fb418eaf352498f6b6c30592e3beb63df42ef11",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "naersk",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1727040444, "lastModified": 1727040444,
@ -446,6 +502,20 @@
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": {
"lastModified": 1730272153,
"narHash": "sha256-B5WRZYsRlJgwVHIV6DvidFN7VX7Fg9uuwkRW9Ha8z+w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1727129439, "lastModified": 1727129439,
"narHash": "sha256-nPyrcFm6FSk7CxzVW4x2hu62aLDghNcv9dX6DF3dXw8=", "narHash": "sha256-nPyrcFm6FSk7CxzVW4x2hu62aLDghNcv9dX6DF3dXw8=",
@ -507,11 +577,12 @@
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"imab": "imab", "imab": "imab",
"impermanence": "impermanence", "impermanence": "impermanence",
"ironbar": "ironbar",
"lix-module": "lix-module", "lix-module": "lix-module",
"lolpizza": "lolpizza", "lolpizza": "lolpizza",
"miro": "miro", "miro": "miro",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"nixpkgs-darwin": "nixpkgs-darwin", "nixpkgs-darwin": "nixpkgs-darwin",
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"pandoc-latex-template": "pandoc-latex-template", "pandoc-latex-template": "pandoc-latex-template",
@ -565,6 +636,27 @@
"type": "github" "type": "github"
} }
}, },
"rust-overlay_3": {
"inputs": {
"nixpkgs": [
"ironbar",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730341826,
"narHash": "sha256-RFaeY7EWzXOmAL2IQEACbnrEza3TgD5UQApHR4hGHhY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "815d1b3ee71716fc91a7bd149801e1f04d45fbc5",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"spoons": { "spoons": {
"flake": false, "flake": false,
"locked": { "locked": {

View file

@ -31,6 +31,10 @@
imab.url = "github:ulyssa/iamb"; imab.url = "github:ulyssa/iamb";
imab.inputs.nixpkgs.follows = "nixpkgs"; imab.inputs.nixpkgs.follows = "nixpkgs";
helix.url = "github:helix-editor/helix"; helix.url = "github:helix-editor/helix";
ironbar = {
url = "github:JakeStanger/ironbar";
inputs.nixpkgs.follows = "nixpkgs";
};
## editor stuff ## editor stuff
# nixd.url = "github:nix-community/nixd"; # nixd.url = "github:nix-community/nixd";

View file

@ -20,20 +20,50 @@
networking.networkmanager.wifi.backend = "iwd"; networking.networkmanager.wifi.backend = "iwd";
services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true; services.displayManager.sddm.wayland.enable = true;
services.upower.enable = true;
users.users.ragon.extraGroups = [ "networkmanager" ];
environment.systemPackages = [ environment.systemPackages = [
pkgs.wezterm pkgs.wezterm
]; ];
fonts.packages = [
pkgs.nerdfonts
];
services.pipewire = {
enable = true;
pulse.enable = true;
};
services.fwupd.enable = true;
home-manager.users.ragon = { pkgs, lib, inputs, config, ... }: { home-manager.users.ragon = { pkgs, lib, inputs, config, ... }: {
imports = [ imports = [
../../hm-modules/helix ../../hm-modules/helix
../../hm-modules/nushell ../../hm-modules/nushell
../../hm-modules/zellij
../../hm-modules/cli.nix ../../hm-modules/cli.nix
./swaycfg.nix ./swaycfg.nix
../../hm-modules/files.nix ../../hm-modules/files.nix
]; ];
ragon.helix.enable = true; ragon.helix.enable = true;
ragon.nushell.enable = true; ragon.nushell.enable = true;
ragon.zellij.enable = true;
home.file.".config/wezterm/wezterm.lua".text = ''
local wezterm = require 'wezterm'
-- This will hold the configuration.
local config = wezterm.config_builder()
config.default_prog = { 'zellij', 'attach', '-c' }
config.hide_tab_bar_if_only_one_tab = true
config.max_fps = 144
-- This is where you actually apply your config choices
-- For example, changing the color scheme:
config.color_scheme = 'Gruvbox Dark (Gogh)'
-- and finally, return the configuration to wezterm
return config
'';
# home.persistence."/persistent/home/ragon" = # home.persistence."/persistent/home/ragon" =

View file

@ -6,6 +6,7 @@
{ {
imports = imports =
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
"${inputs.nixos-hardware}/framework/13-inch/7040-amd"
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ];

View file

@ -1,148 +1,254 @@
{ pkgs, config, inputs, ...}: { { pkgs, config, inputs, ... }: {
home.packages = with pkgs; [ imports = [ inputs.ironbar.homeManagerModules.default ];
slurp home.packages = with pkgs; [
grim slurp
mako grim
firefox mako
light firefox
playerctl light
jq playerctl
rofi jq
swaylock rofi
]; swaylock
];
programs.ironbar = {
enable = true;
style = ''
@define-color color_bg #282828;
@define-color color_bg_dark #3c3836;
@define-color color_border #665c54;
@define-color color_border_active #7c6f64;
@define-color color_text #ebdbb2;
@define-color color_urgent #cc241d;
* {
font-family: Noto Sans Nerd Font, sans-serif;
font-size: 10px;
border: none;
border-radius: 0;
}
box, menubar, button {
background-color: @color_bg;
background-image: none;
box-shadow: none;
}
button, label {
color: @color_text;
}
button:hover {
background-color: @color_bg_dark;
}
scale trough {
min-width: 1px;
min-height: 2px;
}
/* #bar {
border-top: 1px solid @color_border;
} */
.popup {
border: 1px solid @color_border;
padding: 1em;
}
'';
config = {
position = "top";
height = 10;
start = [
{ type = "workspaces"; }
{ type = "sway_mode"; }
];
middle = [
{
type = "focused";
show_icon = true;
show_title = true;
icon_size = 10;
truncate = "end";
}
];
end = [
{ type = "music"; player_name = "mpris"; }
{
type = "volume";
icons = {
volume_high = "󰕾";
volume_medium = "󰖀";
volume_low = "󰕿";
muted = "󰝟";
};
format = "{icon} {percentage}%";
max_volume = 100;
}
{
type = "upower";
format = "󰁹 {percentage}%";
}
{
type = "sys_info";
format = [
" {cpu_percent}% {temp_c:k10temp-Tccd1}°C"
" {memory_used}/{memory_total}GB"
"󰋊 {disk_used:/persistent}/{disk_total:/persistent}GB"
"󰓢 {net_down:wlan0}/{net_up:wlan0} Mbps"
"󰖡 {load_average:1} | {load_average:5} | {load_average:15}"
];
interval = {
"cpu" = 1;
"disks" = 300;
"memory" = 30;
"networks" = 3;
"temps" = 5;
};
}
{
type = "clock";
format = "%Y-%m-%dT%H:%M:%S%z";
}
];
};
};
home.file.".config/sway/config".text = '' home.file.".config/sway/config".text = ''
set $mod Mod4 set $mod Mod4
set $term wezterm set $term wezterm
set $screenclip slurp | grim -g - ~/Images/screenshots/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png set $screenclip slurp | grim -g - ~/Images/screenshots/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png
set $screenshot grim ~/Images/screenshots/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png set $screenshot grim ~/Images/screenshots/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png
set $menu rofi -m $(swaymsg -t get_outputs | jq 'map(select(.active) | .focused) | index(true)') -show drun -run-command 'swaymsg exec -- {cmd}' set $menu rofi -show drun -run-command 'swaymsg exec -- {cmd}'
set $lock swaylock set $lock swaylock -c 000000
set $cl_high #009ddc set $cl_high #009ddc
set $cl_indi #d9d8d8 set $cl_indi #d9d8d8
set $cl_back #231f20 set $cl_back #231f20
set $cl_fore #d9d8d8 set $cl_fore #d9d8d8
set $cl_urge #ee2e24 set $cl_urge #ee2e24
# Colors border bg text indi childborder # Colors border bg text indi childborder
client.focused $cl_high $cl_high $cl_fore $cl_indi $cl_high client.focused $cl_high $cl_high $cl_fore $cl_indi $cl_high
client.focused_inactive $cl_back $cl_back $cl_fore $cl_back $cl_back client.focused_inactive $cl_back $cl_back $cl_fore $cl_back $cl_back
client.unfocused $cl_back $cl_back $cl_fore $cl_back $cl_back client.unfocused $cl_back $cl_back $cl_fore $cl_back $cl_back
client.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge client.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge
# workspaces # workspaces
set $ws1 1: set $ws1 1:1
set $ws2 2: set $ws2 2:2
set $ws3 3:3 set $ws3 3:3
set $ws4 4:4 set $ws4 4:4
set $ws5 5:5 set $ws5 5:5
set $ws6 6:6 set $ws6 6:6
set $ws7 7:7 set $ws7 7:7
set $ws8 8:8 set $ws8 8:8
set $ws9 9:9 set $ws9 9:9
set $ws0 10:10 set $ws0 10:10
exec --no-startup-id mako exec --no-startup-id mako
input * { exec --no-startup-id ironbar
xkb_layout us input 12951:6505:ZSA_Technology_Labs_Moonlander_Mark_I {
xkb_variant colemak_dh_iso xkb_layout eu
xkb_options caps:swapescape }
} input * {
input 12951:6505:ZSA_Technology_Labs_Moonlander_Mark_I { xkb_layout us
xkb_layout eu xkb_variant colemak_dh_iso
} xkb_options caps:swapescape
bindsym $mod+Return exec $term }
bindsym $mod+Print exec $screenshot bindsym $mod+Return exec $term
bindsym $mod+Shift+Print exec $screenclip bindsym $mod+Space exec $menu
bindsym $mod+Shift+q kill bindsym $mod+Print exec $screenshot
bindsym $mod+Shift+c reload bindsym $mod+Shift+Print exec $screenclip
# Brightness controls bindsym $mod+Shift+q kill
bindsym --locked XF86MonBrightnessUp exec --no-startup-id light -A 10 bindsym $mod+Shift+c reload
bindsym --locked XF86MonBrightnessDown exec --no-startup-id light -U 10 # Brightness controls
# Multimedia bindsym --locked XF86MonBrightnessUp exec --no-startup-id light -A 10
bindsym --locked XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5% bindsym --locked XF86MonBrightnessDown exec --no-startup-id light -U 10
bindsym --locked XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5% # Multimedia
bindsym --locked XF86AudioMute exec --no-startup-id pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle bindsym --locked XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5%
bindsym --locked XF86AudioPlay exec playerctl play-pause bindsym --locked XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5%
bindsym --locked XF86AudioNext exec playerctl next bindsym --locked XF86AudioMute exec --no-startup-id pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle
bindsym --locked XF86AudioPrev exec playerctl previous bindsym --locked XF86AudioPlay exec playerctl play-pause
bindsym --locked XF86AudioNext exec playerctl next
bindsym --locked XF86AudioPrev exec playerctl previous
# Idle configuration # Idle configuration
exec swayidle \ exec swayidle \
timeout 300 'exec $lock' \ timeout 300 'exec $lock' \
timeout 600 'swaymsg "output * dpms off"' \ timeout 600 'swaymsg "output * dpms off"' \
after-resume 'swaymsg "output * dpms on"' \ after-resume 'swaymsg "output * dpms on"' \
before-sleep 'exec $lock' before-sleep 'exec $lock'
# switch to workspace # switch to workspace
bindsym $mod+1 workspace $ws1 bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2 bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3 bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4 bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5 bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6 bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7 bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8 bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9 bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws0 bindsym $mod+0 workspace $ws0
# move focused container to workspace # move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1 bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2 bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3 bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4 bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5 bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6 bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7 bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8 bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9 bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws0 bindsym $mod+Shift+0 move container to workspace $ws0
# Layout stuff: # Layout stuff:
# Switch the current container between different layout styles # Switch the current container between different layout styles
bindsym $mod+s layout stacking bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split bindsym $mod+e layout toggle split
# Make the current focus fullscreen # Make the current focus fullscreen
bindsym $mod+f fullscreen bindsym $mod+Shift+f fullscreen
# Toggle the current focus between tiling and floating mode # Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area # Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle bindsym $mod+f focus mode_toggle
# Move the currently focused window to the scratchpad # Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window. # Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them. # If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show bindsym $mod+minus scratchpad show
# Modes # Modes
mode "resize" { mode "resize" {
bindsym Left resize shrink width 10px bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px bindsym Right resize grow width 10px
# return to default mode # return to default mode
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
set $mode_system System: (l) lock, (e) logout, (s) suspend, (r) reboot, (S) shutdown, (R) UEFI set $mode_system System: (l) lock, (e) logout, (s) suspend, (r) reboot, (S) shutdown, (R) UEFI
mode "$mode_system" { mode "$mode_system" {
bindsym l exec $lock, mode "default" bindsym l exec $lock, mode "default"
bindsym e exit bindsym e exit
bindsym s exec --no-startup-id systemctl suspend, mode "default" bindsym s exec --no-startup-id systemctl suspend, mode "default"
bindsym r exec --no-startup-id systemctl reboot, mode "default" bindsym r exec --no-startup-id systemctl reboot, mode "default"
bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default" bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"
bindsym Shift+r exec --no-startup-id systemctl reboot --firmware-setup, mode "default" bindsym Shift+r exec --no-startup-id systemctl reboot --firmware-setup, mode "default"
# return to default mode # return to default mode
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
bindsym $mod+Shift+e mode "$mode_system" bindsym $mod+Shift+e mode "$mode_system"
''; '';
} }