Compare commits

..

11 commits

Author SHA1 Message Date
1cd19687be lmao 2023-10-28 22:25:06 +02:00
224c80c420 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/6bba64781e4b7c1f91a733583defbd3e46b49408' (2023-10-10)
  → 'github:nix-community/home-manager/ae631b0b20f06f7d239d160723d228891ddb2fe0' (2023-10-20)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f99e5f03cc0aa231ab5950a15ed02afec45ed51a' (2023-10-09)
  → 'github:NixOS/nixpkgs/7c9cc5a6e5d38010801741ac830a3f8fd667a7a0' (2023-10-19)
• Updated input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/bd1cde45c77891214131cbbea5b1203e485a9d51' (2023-10-11)
  → 'github:NixOS/nixpkgs/679cadfdfed2b90311a247b2d6ef6dfd3d6cab73' (2023-10-20)
2023-10-21 19:01:23 +02:00
a15428963c AAAAAAAAAAAAAAAAAAAAAAAAAAAAAa 2023-09-25 20:11:47 +02:00
6af89065f1 Merge branch 'master' of gitlab.com:schrottkatze/nix-configs 2023-09-25 19:47:49 +02:00
1e4e46dfd7 grrr 2023-09-25 19:47:34 +02:00
8475640b1d remove ripgrep...? 2023-09-25 19:47:23 +02:00
ed9ca536ad Merge branch 'master' of gitlab.com:schrottkatze/nix-configs 2023-09-25 19:43:55 +02:00
e38fd62181 Meow 2023-09-25 19:32:00 +02:00
a60f9016d1 flake.lock: Add
Flake lock file updates:

• Added input 'arion':
    'github:hercules-ci/arion/28902d348807c494115177595f812a3e54cc913b' (2023-08-23)
• Added input 'arion/flake-parts':
    'github:hercules-ci/flake-parts/47478a4a003e745402acf63be7f9a092d51b83d7' (2023-02-09)
• Added input 'arion/flake-parts/nixpkgs-lib':
    follows 'arion/nixpkgs'
• Added input 'arion/haskell-flake':
    'github:srid/haskell-flake/c2cafce9d57bfca41794dc3b99c593155006c71e' (2023-02-02)
• Added input 'arion/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/0a63bfa3f00a3775ea3a6722b247880f1ffe91ce' (2023-07-15)
• Added input 'arion/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/8e8d955c22df93dbe24f19ea04f47a74adbdc5ec' (2023-07-04)
• Added input 'arion/hercules-ci-effects/flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/4bc72cae107788bf3f24f30db2e2f685c9298dc9?dir=lib' (2023-06-29)
• Added input 'arion/hercules-ci-effects/hercules-ci-agent':
    'github:hercules-ci/hercules-ci-agent/367dd8cd649b57009a6502e878005a1e54ad78c5' (2023-07-05)
• Added input 'arion/hercules-ci-effects/hercules-ci-agent/flake-parts':
    'github:hercules-ci/flake-parts/8e8d955c22df93dbe24f19ea04f47a74adbdc5ec' (2023-07-04)
• Added input 'arion/hercules-ci-effects/hercules-ci-agent/flake-parts/nixpkgs-lib':
    follows 'arion/hercules-ci-effects/hercules-ci-agent/nixpkgs'
• Added input 'arion/hercules-ci-effects/hercules-ci-agent/haskell-flake':
    'github:srid/haskell-flake/74210fa80a49f1b6f67223debdbf1494596ff9f2' (2023-05-22)
• Added input 'arion/hercules-ci-effects/hercules-ci-agent/nixpkgs':
    'github:NixOS/nixpkgs/0fbe93c5a7cac99f90b60bdf5f149383daaa615f' (2023-07-02)
• Added input 'arion/hercules-ci-effects/nixpkgs':
    follows 'arion/nixpkgs'
• Added input 'arion/nixpkgs':
    'github:NixOS/nixpkgs/545c7a31e5dedea4a6d372712a18e00ce097d462' (2023-02-13)
• Added input 'easymacros':
    'git+https://gitlab.com/obsidianical/easymacros.git?ref=refs/heads/main&rev=43405b3bcf786513adc6534ed0e6618c458ba2cb' (2022-09-07)
• Added input 'easymacros/flake-utils':
    'github:numtide/flake-utils/bee6a7250dd1b01844a2de7e02e4df7d8a0a206c' (2022-06-24)
• Added input 'easymacros/naersk':
    'github:nix-community/naersk/cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f' (2022-06-12)
• Added input 'easymacros/naersk/nixpkgs':
    'github:NixOS/nixpkgs/660ac43ff9ab1f12e28bfb31d4719795777fe152' (2022-07-02)
• Added input 'easymacros/nixpkgs':
    'github:NixOS/nixpkgs/660ac43ff9ab1f12e28bfb31d4719795777fe152' (2022-07-02)
• Added input 'gumseite':
    'git+https://gitlab.com/schrottkatze/gum-schulsachen.git?ref=refs/heads/master&rev=57f43b774151e34bbf3de5f159924aca93750561' (2023-03-30)
• Added input 'gumseite/flake-utils':
    'github:numtide/flake-utils/93a2b84fc4b70d9e089d029deacc3583435c2ed6' (2023-03-15)
• Added input 'gumseite/nixpkgs':
    'github:NixOS/nixpkgs/5b7cd5c39befee629be284970415b6eb3b0ff000' (2023-03-28)
• Added input 'home-manager':
    'github:nix-community/home-manager/b372d7f8d5518aaba8a4058a453957460481afbc' (2023-05-29)
• Added input 'home-manager/nixpkgs':
    follows 'nixpkgs'
• Added input 'home-manager/utils':
    'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f' (2022-11-02)
• Added input 'karton':
    'git+https://gitlab.com/obsidianical/microbin.git?ref=refs/heads/master&rev=5002f11bf360e4508fc73c28fa0aa0f80bf0713d' (2023-05-03)
• Added input 'karton/naersk':
    'github:nix-community/naersk/d998160d6a076cfe8f9741e56aeec7e267e3e114' (2022-12-15)
• Added input 'karton/naersk/nixpkgs':
    'github:NixOS/nixpkgs/f5ffd5787786dde3a8bf648c7a1b5f78c4e01abb' (2023-03-03)
• Added input 'karton/nixpkgs':
    'github:NixOS/nixpkgs/f5ffd5787786dde3a8bf648c7a1b5f78c4e01abb' (2023-03-03)
• Added input 'karton/utils':
    'github:numtide/flake-utils/3db36a8b464d0c4532ba1c7dda728f4576d6d073' (2023-02-13)
• Added input 'mac-brcm-fw':
    'path:./mac-brcm-fw?lastModified=1&narHash=sha256-ewzM8IBKNFCx73ah5rflcdx605ukRF3oTWwih2CTsvs%3D' (1970-01-01)
• Added input 'meowsite':
    'git+https://gitlab.com/obsidianical/meowsite.git?ref=refs/heads/master&rev=f40a32b22bc96b07cb78fb5751cf92d5f30b1c24' (2023-03-15)
• Added input 'meowsite/flake-utils':
    'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f' (2022-11-02)
• Added input 'meowsite/nixpkgs':
    'github:NixOS/nixpkgs/ab1254087f4cdf4af74b552d7fc95175d9bdbb49' (2023-01-22)
• Added input 'nixos-hardware':
    'github:networkException/nixos-hardware/8e28b9ee431b265d1fc74b8b819ea0816344c4a1' (2023-06-27)
• Added input 'nixpkgs':
    'github:NixOS/nixpkgs/e35dcc04a3853da485a396bdd332217d0ac9054f' (2023-09-22)
• Added input 'nixpkgs-stable':
    'github:NixOS/nixpkgs/261abe8a44a7e8392598d038d2e01f7b33cf26d0' (2023-09-24)
• Added input 'wordsofgod':
    'git+https://gitlab.com/obsidianical/wordsofgod.git?ref=refs/heads/master&rev=93c03cbe6f7bac22c7c5023d4bcba3af837ce43b' (2023-02-09)
• Added input 'wordsofgod/naersk':
    'github:nix-community/naersk/d998160d6a076cfe8f9741e56aeec7e267e3e114' (2022-12-15)
• Added input 'wordsofgod/naersk/nixpkgs':
    'github:NixOS/nixpkgs/d25de6654a34d99dceb02e71e6db516b3b545be6' (2023-02-05)
• Added input 'wordsofgod/nixpkgs':
    'github:NixOS/nixpkgs/d25de6654a34d99dceb02e71e6db516b3b545be6' (2023-02-05)
• Added input 'wordsofgod/utils':
    'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f' (2022-11-02)
2023-09-25 19:30:57 +02:00
b99824885a Merge branch 'master' of gitlab.com:schrottkatze/nix-configs 2023-09-25 19:30:33 +02:00
5e4b9ee4c0 last commit 2023-08-24 16:57:47 +02:00
27 changed files with 464 additions and 213 deletions

View file

@ -1,4 +0,0 @@
sudo nixos-rebuild switch --flake . \
--impure --override-input mac-brcm-fw path:/home/jade/mac-brcm-fw \
--build-host 192.168.178.119 --no-build-nix

View file

@ -1,3 +0,0 @@
sudo nixos-rebuild switch --flake . \
--impure --override-input mac-brcm-fw path:/home/jade/mac-brcm-fw \

View file

@ -1 +0,0 @@
sudo nixos-rebuild switch --flake . --impure

View file

@ -27,12 +27,13 @@ with builtins;
environment = {
systemPackages = with pkgs; [
nushellFull networkmanager htmlq
wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11
jdk libsecret gh nix-prefetch-scripts fzf glab ripgrep
sl lolcat appimage-run git-crypt file whois p7zip file nmap cmatrix tree
socat smartmontools
socat smartmontools mprocs
dig aria2 usbutils
];
};
@ -101,7 +102,7 @@ with builtins;
users.users.jade = {
isNormalUser = true;
extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" ];
extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark" ];
packages = [
pkgs.marksman
];

View file

@ -245,11 +245,11 @@
]
},
"locked": {
"lastModified": 1695550077,
"narHash": "sha256-xoxR/iY69/3lTnnZDP6gf3J46DUKPcf+Y1jH03tfZXE=",
"lastModified": 1697838989,
"narHash": "sha256-hwVlO+st8vWJO6iy3/JbMHrUyY4Ak7xUSmffoWqBPUg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a88df2fb101778bfd98a17556b3a2618c6c66091",
"rev": "ae631b0b20f06f7d239d160723d228891ddb2fe0",
"type": "github"
},
"original": {
@ -418,11 +418,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1695559356,
"narHash": "sha256-kXZ1pUoImD9OEbPCwpTz4tHsNTr4CIyIfXb3ocuR8sI=",
"lastModified": 1697777081,
"narHash": "sha256-n2vQARhKevRGyeo+LAa8g+CdUQsdH/caNk8jnylcPhY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "261abe8a44a7e8392598d038d2e01f7b33cf26d0",
"rev": "679cadfdfed2b90311a247b2d6ef6dfd3d6cab73",
"type": "github"
},
"original": {
@ -569,11 +569,11 @@
},
"nixpkgs_9": {
"locked": {
"lastModified": 1695360818,
"narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=",
"lastModified": 1697723726,
"narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e35dcc04a3853da485a396bdd332217d0ac9054f",
"rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0",
"type": "github"
},
"original": {

View file

@ -55,7 +55,7 @@
home-manager.useUserPackages = true;
home-manager.users.jade = { nixosConfig, pkgs, ... }: {
home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "${nixosConfig.system.stateVersion}";
home.stateVersion = "22.11";
};
}
];

View file

@ -13,6 +13,7 @@ import System.Exit
import XMonad.Hooks.StatusBar
import XMonad.Hooks.StatusBar.PP
import XMonad.Hooks.EwmhDesktops
import qualified XMonad.StackSet as W
import qualified Data.Map as M
@ -20,6 +21,8 @@ import qualified Data.Map as M
import XMonad.Layout.Spacing
import XMonad.Layout.Tabbed
import XMonad.Actions.KeyRemap
import XMonad.Prompt
import XMonad.Prompt.Layout
import Graphics.X11.ExtraTypes.XF86
@ -29,7 +32,7 @@ import Control.Monad (when)
-- The preferred terminal program, which is used in a binding below and by
-- certain contrib modules.
--
myTerminal = "kitty"
myTerminal = "kitty"
-- Whether focus follows the mouse pointer.
myFocusFollowsMouse :: Bool
@ -41,14 +44,14 @@ myClickJustFocuses = False
-- Width of the window border in pixels.
--
myBorderWidth = 2
myBorderWidth = 2
-- modMask lets you specify which modkey you want to use. The default
-- is mod1Mask ("left alt"). You may also consider using mod3Mask
-- ("right alt"), which does not conflict with emacs keybindings. The
-- "windows key" is usually mod4Mask.
--
myModMask = mod4Mask
myModMask = mod4Mask
-- The default number of workspaces (virtual screens) and their names.
-- By default we use numeric strings, but any string may be used as a
@ -59,129 +62,129 @@ myModMask = mod4Mask
--
-- > workspaces = ["web", "irc", "code" ] ++ map show [4..9]
--
myWorkspaces = ["comms","browser","3","4","5","6","7","8","9"]
myWorkspaces = ["comms","browser","3","4","5","6","7","8","9"]
-- Border colors for unfocused and focused windows, respectively.
--
myNormalBorderColor = "#3c3836"
myFocusedBorderColor = "#504945"
myRemaps = KeymapTable [ ((0, xK_a), (0, xK_b)) ]
------------------------------------------------------------------------
-- Key bindings. Add, modify or remove key bindings here.
--
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
[ ((modm, xK_Return), spawn $ XMonad.terminal conf)
, ((modm .|. shiftMask, xK_q), kill)
-- -- Rotate through the available layout algorithms
, ((modm, xK_space ), sendMessage NextLayout)
[ ((modm, xK_Return), spawn $ XMonad.terminal conf)
, ((modm .|. shiftMask, xK_q), kill)
-- Rotate through the available layout algorithms
, ((modm, xK_space ), sendMessage NextLayout)
-- rofiing
, ((modm, xK_d), spawn "rofi -show drun")
, ((modm .|. shiftMask, xK_e), spawn "rofi -show desktopctl -modes desktopctl:desktopctl -show-icons")
, ((modm, xK_m), spawn "menu-qalc -- -theme gruvbox-dark")
, ((modm, xK_i), spawn "rofimoji --selector-args '-theme gruvbox-dark' -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy")
-- rofiing
, ((modm, xK_d), spawn "rofi -show drun")
, ((modm .|. shiftMask, xK_e), spawn "rofi -show desktopctl -modes desktopctl:desktopctl -show-icons")
, ((modm, xK_m), spawn "menu-qalc -- -theme gruvbox-dark")
, ((modm, xK_i), spawn "rofimoji --selector-args '-theme gruvbox-dark' -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy")
, ((modm, xK_o), spawn "rofi -show searchwolf -modes searchwolf:searchwolf -theme gruvbox-dark")
, ((modm, xK_o), spawn "rofi -show searchwolf -modes searchwolf:searchwolf -theme gruvbox-dark")
-- screenshotting
-- TODO: Fix/rewrite window-screenshot.sh
, ((modm, xK_w), spawn "window-screenshot.nu")
, ((modm, xK_s), spawn "flameshot gui -c -p $HOME/Pictures/screenshots")
, ((modm, xK_a), spawn "flameshot screen -c -p $HOME/Pictures/screenshots")
, ((modm, xK_t), spawn "ocr-screenshot.sh")
-- screenshotting
-- TODO: Fix/rewrite window-screenshot.sh
, ((modm, xK_w), spawn "window-screenshot.sh")
, ((modm, xK_s), spawn "flameshot gui -c -p $HOME/Pictures/screenshots")
, ((modm, xK_a), spawn "flameshot screen -c -p $HOME/Pictures/screenshots")
, ((modm, xK_t), spawn "ocr-screenshot.sh")
, ((modm .|. shiftMask, xK_t), spawn "DEVICE=\"MELF0410:00 1FD2:7007\"; if [ $(xinput list-props \"$DEVICE\" | awk '/^\\tDevice Enabled \\([0-9]+\\):\\t[01]/ {print $NF}') = \"1\" ]; then xinput disable \"$DEVICE\"; else xinput enable \"$DEVICE\"; fi")
, ((modm .|. shiftMask, xK_t), spawn "DEVICE=\"MELF0410:00 1FD2:7007\"; if [ $(xinput list-props \"$DEVICE\" | awk '/^\\tDevice Enabled \\([0-9]+\\):\\t[01]/ {print $NF}') = \"1\" ]; then xinput disable \"$DEVICE\"; else xinput enable \"$DEVICE\"; fi")
-- Reset the layouts on the current workspace to default
-- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
-- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
-- Push window back into tiling
, ((modm .|. shiftMask, xK_space ), withFocused $ windows . W.sink)
-- Reset the layouts on the current workspace to default
-- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
-- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
-- Push window back into tiling
, ((modm .|. shiftMask, xK_space ), withFocused $ windows . W.sink)
-- Resize viewed windows to the correct size
, ((modm, xK_n ), refresh)
-- Resize viewed windows to the correct size
, ((modm, xK_n ), refresh)
-- Move focus to the next window
, ((modm, xK_Tab ), layoutPrompt def)
-- Move focus to the next window
, ((modm, xK_Tab ), layoutPrompt def)
-- Move focus
, ((modm, xK_j ), windows W.focusDown)
, ((modm, xK_k ), windows W.focusUp )
-- Move focus
, ((modm, xK_j ), windows W.focusDown)
, ((modm, xK_k ), windows W.focusUp )
-- Swap the focused window with the next window
, ((modm .|. shiftMask, xK_j ), windows W.swapDown )
, ((modm .|. shiftMask, xK_k ), windows W.swapUp )
-- Swap the focused window with the next window
, ((modm .|. shiftMask, xK_j ), windows W.swapDown )
, ((modm .|. shiftMask, xK_k ), windows W.swapUp )
-- Shrink the master area
, ((modm, xK_h ), sendMessage Shrink)
, ((modm, xK_l ), sendMessage Expand)
-- Shrink the master area
, ((modm, xK_h ), sendMessage Shrink)
, ((modm, xK_l ), sendMessage Expand)
-- Increment the number of windows in the master area
, ((modm , xK_comma ), sendMessage (IncMasterN 1))
, ((modm , xK_period), sendMessage (IncMasterN (-1)))
-- Increment the number of windows in the master area
, ((modm , xK_comma ), sendMessage (IncMasterN 1))
, ((modm , xK_period), sendMessage (IncMasterN (-1)))
-- Brightness n stuff
-- , ((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 10%+")
-- , ((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 10%-")
-- , ((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle")
-- , ((0, xF86XK_MonBrightnessUp), spawn "brightnessctl set +10%")
-- , ((0, xF86XK_MonBrightnessDown), spawn "brightnessctl set 10%-")
-- , ((0, xF86XK_KbdBrightnessUp), spawn "brightnessctl -d \"kbd_backlight\" set +10%")
-- , ((0, xF86XK_KbdBrightnessDown), spawn "brightnessctl -d \"kbd_backlight\" set 10%-")
-- Brightness n stuff
-- , ((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 10%+")
-- , ((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 10%-")
-- , ((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle")
-- , ((0, xF86XK_MonBrightnessUp), spawn "brightnessctl set +10%")
-- , ((0, xF86XK_MonBrightnessDown), spawn "brightnessctl set 10%-")
-- , ((0, xF86XK_KbdBrightnessUp), spawn "brightnessctl -d \"kbd_backlight\" set +10%")
-- , ((0, xF86XK_KbdBrightnessDown), spawn "brightnessctl -d \"kbd_backlight\" set 10%-")
-- Toggle the status bar gap
-- Use this binding with avoidStruts from Hooks.ManageDocks.
-- See also the statusBar function from Hooks.DynamicLog.
--
-- , ((modm , xK_b ), sendMessage ToggleStruts)
-- Toggle the status bar gap
-- Use this binding with avoidStruts from Hooks.ManageDocks.
-- See also the statusBar function from Hooks.DynamicLog.
--
-- , ((modm , xK_b ), sendMessage ToggleStruts)
--, ((modm .|. shiftMask, xK_e ), io (exitWith ExitSuccess))
--, ((modm .|. shiftMask, xK_e ), io (exitWith ExitSuccess))
-- Restart xmonad
--, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart")
-- Restart xmonad
--, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart")
-- Run xmessage with a summary of the default keybindings (useful for beginners)
]
++
-- Run xmessage with a summary of the default keybindings (useful for beginners)
]
++
--
-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
--
[((m .|. modm, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
-- ++
--
-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
--
[((m .|. modm, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
-- ++
--
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
--
-- [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
-- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
-- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
--
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
--
-- [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
-- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
-- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
------------------------------------------------------------------------
-- Mouse bindings: default actions bound to mouse events
--
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
-- mod-button1, Set the window to floating mode and move by dragging
[ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
>> windows W.shiftMaster))
-- mod-button1, Set the window to floating mode and move by dragging
[ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
>> windows W.shiftMaster))
-- mod-button2, Raise the window to the top of the stack
, ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
-- mod-button2, Raise the window to the top of the stack
, ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
-- mod-button3, Set the window to floating mode and resize by dragging
, ((modm, button3), (\w -> focus w >> mouseResizeWindow w
>> windows W.shiftMaster))
-- mod-button3, Set the window to floating mode and resize by dragging
, ((modm, button3), (\w -> focus w >> mouseResizeWindow w
>> windows W.shiftMaster))
-- you may also bind events to the mouse scroll wheel (button4 and button5)
]
-- you may also bind events to the mouse scroll wheel (button4 and button5)
]
------------------------------------------------------------------------
-- Layouts:
@ -195,16 +198,16 @@ myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
-- which denotes layout choice.
tabCfg = def
{ activeColor = "#282828"
, inactiveColor = "#1d2021"
, urgentColor = "#9d0006"
, activeBorderColor = "#504945"
, inactiveBorderColor = "#3c3836"
, urgentBorderColor = "#cc241d"
, activeTextColor = "#ebdbb2"
, inactiveTextColor = "#bdae93"
, urgentTextColor = "#ebdbb2"
}
{ activeColor = "#282828"
, inactiveColor = "#1d2021"
, urgentColor = "#9d0006"
, activeBorderColor = "#504945"
, inactiveBorderColor = "#3c3836"
, urgentBorderColor = "#cc241d"
, activeTextColor = "#ebdbb2"
, inactiveTextColor = "#bdae93"
, urgentTextColor = "#ebdbb2"
}
myLayout = tiled ||| tabbed shrinkText tabCfg ||| Mirror tiled
where
-- default tiling algorithm partitions the screen into two panes
@ -235,10 +238,10 @@ myLayout = tiled ||| tabbed shrinkText tabCfg ||| Mirror tiled
-- 'className' and 'resource' are used below.
--
myManageHook = composeAll
[ className =? "MPlayer" --> doFloat
, className =? "Gimp" --> doFloat
, resource =? "desktop_window" --> doIgnore
, resource =? "kdesktop" --> doIgnore ]
[ className =? "MPlayer" --> doFloat
, className =? "Gimp" --> doFloat
, resource =? "desktop_window" --> doIgnore
, resource =? "kdesktop" --> doIgnore ]
------------------------------------------------------------------------
-- Event handling
@ -273,11 +276,12 @@ myLogHook = return ()
--
-- By default, do nothing.
myStartupHook = do
spawn "pkill oneko; oneko -tofocus -tora -position +-1+5 -fg palevioletred3 -bg pink -name 'Rose the desktop kitty'"
--spawn "pkill polybar; polybar"
spawn "pkill volumeicon; volumeicon"
spawn "pkill nm-applet; nm-applet"
spawn "mullvad-vpn --background"
spawn "pkill oneko; oneko -tofocus -tora -position +-1+5 -fg palevioletred3 -bg pink -name 'Rose the desktop kitty'"
--spawn "pkill polybar; polybar"
spawn "pkill volumeicon; volumeicon"
spawn "pkill nm-applet; nm-applet"
spawn "mullvad-vpn --background"
setDefaultKeyRemap myRemaps [myRemaps]
@ -287,7 +291,7 @@ myStartupHook = do
-- Run xmonad with the settings you specify. No need to modify this.
--
mySB = statusBarProp "polybar" (pure xmobarPP)
main = xmonad $ withEasySB mySB defToggleStrutsKey defaults
main = xmonad $ withEasySB mySB defToggleStrutsKey (ewmh defaults)
-- A structure containing your configuration settings, overriding
-- fields in the default config. Any you don't override, will
@ -316,4 +320,3 @@ defaults = def
, logHook = myLogHook
, startupHook = myStartupHook
}

View file

@ -53,6 +53,11 @@ in {
device = "DELL081C:00 044E:121F Mouse";
sensitivity = 255;
};
hardware.usbWwan.enable = true;
systemd.services."ModemManager".enable = true;
systemd.services."ModemManager".wants = [ "NetworkManager.service" ];
systemd.services."ModemManager".wantedBy = [ "multi-user.target" ];
programs.wireshark.enable = true;
boot.resumeDevice = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
boot.kernelParams = [ "resume_offset=7380652" ];
@ -64,7 +69,7 @@ in {
services.xserver.libinput.touchpad.tapping = false;
environment.systemPackages = [ pkgs.vivaldi pkgs.vivaldi-ffmpeg-codecs pkgs.plantuml ];
environment.systemPackages = [ pkgs.vivaldi pkgs.vivaldi-ffmpeg-codecs pkgs.plantuml pkgs.mqttui pkgs.mobile-broadband-provider-info pkgs.modem-manager-gui pkgs.wireshark];
# Bootloader.
boot.loader.systemd-boot.enable = true;
@ -82,31 +87,31 @@ in {
};
};
nixpkgs = {
overlays = [
(self: super: {
linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override {
structuredExtraConfig = with lib.kernel; {
"FB" = yes;
"FRAMEBUFFER_CONSOLE" = yes;
"VGA_CONSOLE" = yes;
"VIDEO_SELECT" = yes;
LOGO = lib.mkForce yes;
LOGO_LINUX_CLUT224 = yes;
};
ignoreConfigErrors = true;
});
})
];
};
# nixpkgs = {
# overlays = [
# (self: super: {
# linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override {
# structuredExtraConfig = with lib.kernel; {
# "FB" = yes;
# "FRAMEBUFFER_CONSOLE" = yes;
# "VGA_CONSOLE" = yes;
# "VIDEO_SELECT" = yes;
# LOGO = lib.mkForce yes;
# LOGO_LINUX_CLUT224 = yes;
# };
# ignoreConfigErrors = true;
# });
# })
# ];
# };
boot.kernelPackages = pkgs.linuxPackages_zen;
boot.kernelPatches = [
{
name = "fomx";
patch = ../../other/0001-fomx.patch;
}
];
# boot.kernelPatches = [
# {
# name = "fomx";
# patch = ../../other/0001-fomx.patch;
# }
# ];
services.xserver.displayManager.autoLogin = {
enable = true;

View file

@ -57,7 +57,7 @@
# latest linux kernel
#boot.kernelPackages = pkgs.linuxPackages_latest;
#boot.kernelPackages = pkgs.linux_zen_xeniafied;
boot.kernelPackages = pkgs.linuxPackages_zen;
kernelPackages = pkgs.linuxPackages_zen;
# boot.kernelPatches = [
# {
# name = "fomx";

View file

@ -30,7 +30,7 @@
};
services = {
openssh.permitRootLogin = "no";
openssh.permitRootLogin = "without-password";
fail2ban = {
enable = true;
bantime-increment.enable = true;

View file

@ -7,7 +7,7 @@
dbuser = "nextcloud";
dbhost = "/run/postgresql"; # nextcloud will add /.s.PGSQL.5432 by itself
dbname = "nextcloud";
adminpassFile = "${../secret-data/nextcloud-admin-pass}";
adminpassFile = "${../../secret-data/nextcloud-admin-pass}";
adminuser = "root";
};
package = pkgs.nextcloud25;

View file

@ -33,7 +33,7 @@
"PENPOT_SMTP_HOST" = "smtp.migadu.com";
"PENPOT_SMTP_PORT" = "587";
"PENPOT_SMTP_USERNAME" = "noreply-pp@schrottkatze.de";
"PENPOT_SMTP_PASSWORD" = "${builtins.readFile ../secret-data/penpot-smtp-pass}";
"PENPOT_SMTP_PASSWORD" = "${builtins.readFile ../../secret-data/penpot-smtp-pass}";
"PENPOT_SMTP_TLS" = "true";
"PENPOT_SMTP_SSL" = "false";
};

View file

@ -13,7 +13,7 @@
SIGNUPS_VERIFY = true;
ROCKET_LOG = "debug";
ENABLE_WAL = false;
ADMIN_TOKEN = builtins.readFile ../secret-data/vaultwarden-admin-token;
ADMIN_TOKEN = builtins.readFile ../../secret-data/vaultwarden-admin-token;
DOMAIN = "https://vw.schrottkatze.de";
SMTP_TIMEOUT = 15;
ROCKET_PORT = 8812;

5
justfile Normal file
View file

@ -0,0 +1,5 @@
test:
sudo nixos-rebuild test --flake . --impure
build:
sudo nixos-rebuild switch --flake . --impure

View file

@ -13,6 +13,7 @@
jack.enable = true;
};
};
hardware.pulseaudio.enable = pkgs.lib.mkForce false;
sound.mediaKeys.enable = true;
home-manager.users.jade = { pkgs, ... }: {
home.packages = with pkgs; [

View file

@ -2,6 +2,7 @@
let
cfg = config.jade.desktop;
# window-screenshot = pkgs.writeTextFile "window-screenshot.nu" (builtins.readFile ../../other/scripts/desktop/window-screenshot.nu);
window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/window-screenshot.sh);
# desktop-ctl = pkgs.writeShellScriptBin "desktop-ctl.sh" (builtins.readFile ../scripts/desktop/desktop-ctl.sh);
desktop-ctl = import ../../other/scripts/desktop/desktopctl.nix { inherit pkgs; };
@ -102,10 +103,13 @@ in with lib; {
desktopManager = {
xterm.enable = false;
# gnome = {
# enable = true;
# };
};
displayManager = {
#defaultSession = "none+i3";
defaultSession = "none+xmonad";
gdm.enable = true;
};
@ -153,17 +157,12 @@ in with lib; {
notifications.x11.enable = true;
notifications.test = true;
};
services.colord.enable = true;
home-manager.users.jade = { pkgs, ... }: {
programs.bat = {
# TODO: more config
enable = true;
};
programs.exa = {
# TODO: more config
enable = true;
};
programs.nushell = {
enable = true;
package = config.users.defaultUserShell;
@ -172,9 +171,6 @@ in with lib; {
source ${pkgs.nu_scripts}/share/nu_scripts/modules/nix/nix.nu;
'';
};
programs.ripgrep = {
enable = true;
};
services.dunst = {
enable = true;
settings = {
@ -195,11 +191,17 @@ in with lib; {
theme = ../../other/rofi-themes/applauncher.rasi;
};
home.packages = with pkgs; [
spotifyd spotify-tui
#nushell
nu_scripts direnv
just bacon
magic-wormhole-rs
yt-dlp
argyllcms
displaycal
@ -209,11 +211,13 @@ in with lib; {
i3lock rofimoji feh xorg.xinput arandr flameshot
tesseract5 imagemagick xclip xmacro libwacom wacomtablet xorg.xev
syncplay
# categories
# filemanager
xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller
# media/file viewers
vlc evince nomacs
vlc mpv evince nomacs
# from environment.systemPackages cleanup
font-manager xdotool xorg.xwininfo gparted librewolf firefox uhk-agent

View file

@ -1,34 +1,60 @@
{ config, lib, pkgs, ... }:
{
let
addNuShebang = path: builtins.concatStringsSep "\n\n" [
"#!${pkgs.nushellFull}/bin/nu"
(builtins.readFile path)
];
in {
config = {
networking = {
networkmanager.wifi.backend = "wpa_supplicant";
extraHosts = ''
127.0.0.1 www.youtube.com
127.0.0.1 www.reddit.com
127.0.0.1 www.tiktok.com
127.0.0.1 www.twitter.com
127.0.0.1 www.instagram.com
127.0.0.1 www.facebook.com
127.0.0.1 www.snapchat.com
networkmanager = {
wifi.backend = "wpa_supplicant";
dispatcherScripts = [
{
type = "basic";
source = pkgs.writeText "dispatcher" (addNuShebang ../../other/scripts/dispatcher.nu);
}
];
};
hosts = {
"127.0.0.1" = [
"www.tiktok.com"
"www.twitter.com"
"www.instagram.com"
"www.facebook.com"
"www.snapchat.com"
127.0.0.1 youtube.com
127.0.0.1 reddit.com
127.0.0.1 tiktok.com
127.0.0.1 twitter.com
127.0.0.1 instagram.com
127.0.0.1 facebook.com
127.0.0.1 snapchat.com
"tiktok.com"
"twitter.com"
"instagram.com"
"facebook.com"
"snapchat.com"
127.0.0.1 google-analytics.com
127.0.0.1 stats.g.doubleclick.net
127.0.0.1 googleadservices.com
127.0.0.1 googletagmanager.com
127.0.0.1 googletagservices.com
127.0.0.1 googlesyndication.com
'';
"google-analytics.com"
"stats.g.doubleclick.net"
"googleadservices.com"
"googletagmanager.com"
"googletagservices.com"
"googlesyndication.com"
];
"10.31.208.9" = [
"mqtt.z9"
];
};
};
environment.etc = (with builtins; (
listToAttrs (
map (v: {
name = "networkhooks/${v}";
value = {
text = addNuShebang ../../other/scripts/networkhooks/${v};
mode = "0755";
};
})
(attrNames (readDir ../../other/scripts/networkhooks))
)
));
systemd.services."NetworkManager-wait-online".enable = false;
services.mullvad-vpn.enable = true;
home-manager.users.jade = { pkgs, ... }: {

View file

@ -31,19 +31,14 @@ in with lib; {
};
};
languages = {
language = [
{
name = "rust";
}
{
name = "php";
file-types = [ "php" ];
language-server = {
command = "psalm";
args = ["--language-server"];
};
}
];
"php" = {
name = "php";
file-types = [ "php" ];
language-server = {
command = "psalm";
args = ["--language-server"];
};
};
};
};
};

49
modules/utils.nix Normal file
View file

@ -0,0 +1,49 @@
{ pkgs, lib }: rec {
# taken from https://github.com/NixOS/nixpkgs/blob/3650808d85dccbfa3be3d785dfd3ce33a757bd2c/pkgs/build-support/trivial-builders/default.nix#L335
writeNuShellApplication =
{ name
, text
, runtimeInputs ? [ ]
, meta ? { }
, checkPhase ? null
}:
writeTextFile {
inherit name meta;
executable = true;
destination = "/bin/${name}";
allowSubstitutes = true;
preferLocalBuild = false;
text = ''
#!${pkgs.nushell}
'' + lib.optionalString (runtimeInputs != [ ]) ''
$env.PATH = ($env.PATH | split row (char esep) | prepend '${lib.makeBinPath runtimeInputs}');
'' + ''
${text}
'';
checkPhase =
# GHC (=> shellcheck) isn't supported on some platforms (such as risc-v)
# but we still want to use writeShellApplication on those platforms
if checkPhase == null then ''
runHook preCheck
nu -c "nu-check -d $target"
runHook postCheck
''
else checkPhase;
};
packageNushellApplication =
{ name
, path
, runtimeInputs ? [ ]
, meta ? { }
, checkPhase ? null
}:
writeNuShellApplication {
inherit name runtimeInputs meta checkPhase;
text = builtins.readFile path;
};
}

View file

@ -6,13 +6,22 @@ in with lib; {
};
config = mkIf cfg.enable {
home-manager.users.jade = { pkgs, ... }: {
home.file = {
zellij-forgot = {
target = ".config/zellij/plugins/zellij-forgot.wasm";
source = builtins.fetchurl "https://github.com/karimould/zellij-forgot/releases/download/0.2.0/zellij_forgot.wasm";
};
monocle = {
target = ".config/zellij/plugins/monocle.wasm";
source = builtins.fetchurl "https://github.com/imsnif/monocle/releases/download/0.37.2/monocle.wasm";
};
};
programs.zellij = {
enable = true;
enableZshIntegration = true;
settings = {
theme = "gruvbox-dark";
themes.gruvbox-dark = {
fg = "#D5C4A1";
fg = "#d5c4a1";
bg = "#282828";
black = "#3C3836";
red = "#CC241D";
@ -21,9 +30,16 @@ in with lib; {
blue = "#3C8588";
magenta = "#B16286";
cyan = "#689D6A";
white = "#FBF1C7";
white = "#665c54";
orange = "#D65D0E";
};
# keybinds = {
# session = {
# "bind \"o\"" = {
# LaunchOrFocusPlugin = ["file:/home/jade/.config/zellij/plugins/monocle.wasm" { floating = true; }];
# };
# };
# };
pane_frames = false;
};
};

View file

@ -247,9 +247,21 @@ $env.config = {
hooks: {
pre_prompt: [{ ||
let direnv = (direnv export json | from json)
let direnv = if ($direnv | length) == 1 { $direnv } else { {} }
$direnv | load-env
let direnv = (direnv export json | from json | default {})
if ($direnv | is-empty) {
return
}
$direnv
| items {|key, value|
{
key: $key
value: (if $key in $env.ENV_CONVERSIONS {
do ($env.ENV_CONVERSIONS | get $key | get from_string) $value
} else {
$value
})
}
} | transpose -ird | load-env
}] # run before the prompt is shown
pre_execution: [{ null }] # run before the repl input is run
env_change: {
@ -793,3 +805,5 @@ start_zellij
alias gnix = cd ~/nix-configs;
alias grepo = cd ~/Documents/repos;
alias wh = wormhole-rs;
alias nix-shell = nix-shell --run 'nu -li';
alias nsp = nix-shell --run 'nu -li' -p;

View file

@ -0,0 +1,19 @@
#!/usr/bin/env nu
def main [ ] {
let reg = (
xwininfo -id (xdotool getactivewindow)
| lines
| parse '{key}: {value}'
| str trim
| get value
| echo {
x: $in.1
y: $in.2
w: $in.5
h: $in.6
}
);
flameshot gui --region $"($reg.w)x($reg.h)+($reg.x)+($reg.y)" -c -p ~/Pictures/screenshots
}

19
other/scripts/dispatcher.nu Executable file
View file

@ -0,0 +1,19 @@
def main [
interface: string
type: string
] {
$env.PATH = ($env.PATH | split row (char esep) | append '/run/current-system/sw/bin');
let currentnet = (
nmcli -m tabular connection show --active
| detect columns
| first
| get name
);
systemd-cat echo $"($currentnet) \(($interface)): ($type)";
if $interface == 'wlp2s0' {
^$"/etc/networkhooks/($currentnet).nu" $interface $type
}
}

View file

@ -0,0 +1,40 @@
def main [
interface: string
type: string
] {
if not ($type == 'up') {
exit
};
mullvad disconnect;
let page = http get 'http://172.0.0.1/';
let hotspot_ip = $page | htmlq 'input[name=uamip]' -a 'value';
let hotspot_port = $page | htmlq 'input[name=uamport]' -a 'value';
let pl_data = $page
| htmlq input -a name -r input[name=button]
| lines
| wrap name
| merge (
$page
| htmlq input -a value
| lines
| wrap value
)
| drop 1;
let payload = $pl_data
| each {|kv| [
($kv.name | url encode --all)
($kv.value | url encode --all) ]
| str join '='
} | str join '&';
let res = curl --insecure --resolve $"www.hotsplots.de:($hotspot_port):($hotspot_ip)" -H 'Content-Type: application/x-www-form-urlencoded' "https://www.hotsplots.de/auth/login.php" --data-raw $"($payload)" ;
let url = $res | htmlq 'meta[http-equiv=refresh]' -a 'content' | parse '0;url={url}';
http get $url.url.0;
mullvad connect;
}

View file

@ -0,0 +1,22 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p curl htmlq
# echo "Fetching cookie and CSRF token..."
# form=$(curl --silent --location --junk-session-cookies --cookie-jar /tmp/wifionice "https://login.wifionice.de/en/" --resolve login.wifionice.de:443:10.101.64.10 -i | htmlq "input")
# keys=$(htmlq "input" --attribute "name" <<< "$form")
# values=$(htmlq "input" --attribute "value" <<< "$form")
# payload=$(paste --delimiters="=" <(echo "$keys") <(echo "$values") | tr "\n" "&")
# echo "Payload: \"$payload\""
# echo "POSTing payload..."
# curl --cookie /tmp/wifionice "https://login.wifionice.de/en/" --resolve login.wifionice.de:443:10.101.64.10 -d "$payload"
def main [
interface: string
type: string
] {
let form = curl --silent --location --junk-session-cookies --cookie-jar /tmp/wifionice 'https://login.wifionice.de/en/' --resolve 'login.wifionice.de:443:10.101.64.10' -i | htmlq 'input';
# TODO
}

View file

@ -0,0 +1,41 @@
const wave_timeout = 15min;
def main [
interface: string
type: string
] {
if not ('/var/lib/ccchh-winken/last' | path exists) {
mkdir '/var/lib/ccchh-winken';
0 | into datetime | save '/var/lib/ccchh-winken/last' -f;
}
let $last_waved = open '/var/lib/ccchh-winken/last' --raw | into datetime;
if ((date now) - $last_waved) > $wave_timeout {
if $type == "up" {
mullvad disconnect;
curl mqtt://mqtt.z9/winkekatze/katz9/eye/set -d (rand-color);
curl mqtt://mqtt.z9/winkekatze/Viktoria/eye/set -d (rand-color);
curl mqtt://mqtt.z9/winkekatze/allcats -d 'wink';
mullvad connect;
date now | save '/var/lib/ccchh-winken/last' -f;
}
}
}
def rand-color [] {
const colors = [
"blue"
"cyan"
"green"
"pink"
"red"
"white"
"yellow"
];
$colors | get (random integer 0..(($colors | length) - 1))
}

View file

@ -1 +0,0 @@
sudo nixos-rebuild test --flake . --impure