summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--fish/.config/fish/config.fish2
-rw-r--r--vim/.vim/.netrwhist14
-rw-r--r--vim/.vimrc39
-rw-r--r--xmobar/.xmobarrc12
-rw-r--r--xmonad/.config/xmonad/stack.yaml68
-rw-r--r--xmonad/.config/xmonad/stack.yaml.lock13
-rw-r--r--xmonad/.config/xmonad/xmonad.hs133
8 files changed, 258 insertions, 27 deletions
diff --git a/.gitignore b/.gitignore
index ab2533d..dd7359e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,5 +5,7 @@ ssh/.ssh/id_ed25519_tangled
ssh/.ssh/id_ed25519_known_hosts
hx/.config/helix/runtime/
vim/.vim/plugged/
-
+xmonad/.config/xmonad/xmonad/
+xmonad/.config/xmonad/xmonad-contrib/
+xmonad/.config/xmonad/.stack-work/
diff --git a/fish/.config/fish/config.fish b/fish/.config/fish/config.fish
index 7b8cafe..8121ec4 100644
--- a/fish/.config/fish/config.fish
+++ b/fish/.config/fish/config.fish
@@ -88,3 +88,5 @@ function clip
$argv | xclip -selection clipboard
end
end
+
+set -q GHCUP_INSTALL_BASE_PREFIX[1]; or set GHCUP_INSTALL_BASE_PREFIX $HOME ; set -gx PATH $HOME/.cabal/bin /home/sophie/.ghcup/bin $PATH # ghcup-env \ No newline at end of file
diff --git a/vim/.vim/.netrwhist b/vim/.vim/.netrwhist
index 7d5ff8f..9278d2c 100644
--- a/vim/.vim/.netrwhist
+++ b/vim/.vim/.netrwhist
@@ -1,12 +1,12 @@
let g:netrw_dirhistmax =10
-let g:netrw_dirhistcnt =3
+let g:netrw_dirhistcnt =9
+let g:netrw_dirhist_9='/home/sophie/stow/xmonad/.config/xmonad'
+let g:netrw_dirhist_8='/home/sophie/stow/xmonad/.config/xmonad/xmonad'
+let g:netrw_dirhist_7='/home/sophie/stow/xmonad/.config/xmonad'
+let g:netrw_dirhist_6='/home/sophie/stow/xmonad/.config/xmonad/xmonad'
+let g:netrw_dirhist_5='/home/sophie/stow/xmonad/.config/xmonad'
+let g:netrw_dirhist_4='/home/sophie/stow/xmonad/.config/xmonad/xmonad'
let g:netrw_dirhist_3='/home/sophie/stow/jj/.config/jj/config.toml'
let g:netrw_dirhist_2='/home/sophie/website'
let g:netrw_dirhist_1='/home/sophie/stow/nano'
let g:netrw_dirhist_0='/home/sophie/stow'
-let g:netrw_dirhist_9='/home/sophie/stow/gram'
-let g:netrw_dirhist_8='/home/sophie/stow'
-let g:netrw_dirhist_7='/home/sophie/website'
-let g:netrw_dirhist_6='/home/sophie/stow'
-let g:netrw_dirhist_5='/home/sophie/website'
-let g:netrw_dirhist_4='/home/sophie/stow/fish/.config/fish'
diff --git a/vim/.vimrc b/vim/.vimrc
index a92c9db..45268aa 100644
--- a/vim/.vimrc
+++ b/vim/.vimrc
@@ -1,6 +1,6 @@
if empty(glob('~/.vim/autoload/plug.vim'))
- silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
- \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
+ silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
+ \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
endif
call plug#begin('~/.vim/plugged')
Plug 'itchyny/lightline.vim'
@@ -83,22 +83,23 @@ let g:which_key_map.b = {
call which_key#register('<Space>', 'g:which_key_map')
" lsp
autocmd User LspSetup call LspOptionsSet(#{
- \ autoComplete: v:true,
- \ autoHighlightDiags: v:true,
- \ formatFallbck: v:true,
- \ })
+ \ autoComplete: v:true,
+ \ autoHighlightDiags: v:true,
+ \ formatFallbck: v:false,
+ \ })
autocmd User LspSetup call LspAddServer([
- \ #{name: 'pylsp', filetype: 'python', path: 'pylsp'},
- \ #{name: 'clangd', filetype: ['c', 'cpp', 'objc', 'objcpp'],
- \ path: 'clangd', args: ['--background-index']},
- \ #{name: 'html', filetype: 'html',
- \ path: 'vscode-html-language-server', args: ['--stdio']},
- \ #{name: 'css', filetype: ['css', 'scss', 'less'],
- \ path: 'vscode-css-language-server', args: ['--stdio']},
- \ #{name: 'ts', filetype: ['javascript', 'javascript.jsx', 'javascriptreact'],
- \ path: 'typescript-language-server', args: ['--stdio']},
- \ ])
+ \ #{name: 'hs', filetype: ['hs', 'lhs'], path: 'haskell-language-server-wrapper'},
+ \ #{name: 'pylsp', filetype: 'python', path: 'pylsp'},
+ \ #{name: 'clangd', filetype: ['c', 'cpp', 'objc', 'objcpp'],
+ \ path: 'clangd', args: ['--background-index']},
+ \ #{name: 'html', filetype: 'html',
+ \ path: 'vscode-html-language-server', args: ['--stdio']},
+ \ #{name: 'css', filetype: ['css', 'scss', 'less'],
+ \ path: 'vscode-css-language-server', args: ['--stdio']},
+ \ #{name: 'ts', filetype: ['javascript', 'javascript.jsx', 'javascriptreact'],
+ \ path: 'typescript-language-server', args: ['--stdio']},
+ \ ])
autocmd User LspAttached call s:lsp_keymaps()
function! s:lsp_keymaps() abort
@@ -110,7 +111,9 @@ function! s:lsp_keymaps() abort
nmap <buffer> [g :LspDiagPrev<CR>
nmap <buffer> ]g :LspDiagNext<CR>
nmap <buffer> K :LspHover<CR>
-autocmd BufWritePre <buffer> LspFormat
+ if &filetype !=# 'vim'
+ autocmd BufWritePre <buffer> LspFormat
+ endif
endfunction
function! s:prettier_format() abort
if !executable('prettier')
@@ -121,8 +124,6 @@ function! s:prettier_format() abort
if v:shell_error
silent undo
echohl ErrorMsg | echom 'formatting failed'
- else
- silent! 1s/<!doctype html>/<!DOCTYPE html>/e
endif
call winrestview(l:view)
endfunction
diff --git a/xmobar/.xmobarrc b/xmobar/.xmobarrc
new file mode 100644
index 0000000..ebf2e39
--- /dev/null
+++ b/xmobar/.xmobarrc
@@ -0,0 +1,12 @@
+Config { overrideRedirect = False
+ , font = "xft:Berkeley Mono-9"
+ , bgColor = "#101010"
+ , fgColor = "#cccccc"
+ , position = TopW L 100
+ , commands = [ Run XMonadLog
+ , Run Date "%a %Y-%m-%d %H:%M" "date" 10
+ ]
+ , sepChar = "%"
+ , alignSep = "}{"
+ , template = "%XMonadLog% }{ <fc=#606060>%date%</fc> "
+ }
diff --git a/xmonad/.config/xmonad/stack.yaml b/xmonad/.config/xmonad/stack.yaml
new file mode 100644
index 0000000..3d3ad2a
--- /dev/null
+++ b/xmonad/.config/xmonad/stack.yaml
@@ -0,0 +1,68 @@
+# This file was automatically generated by 'stack init'
+#
+# Some commonly used options have been documented as comments in this file.
+# For advanced use and comprehensive documentation of the format, please see:
+# https://docs.haskellstack.org/en/stable/configure/yaml/
+
+# A 'specific' Stackage snapshot or a compiler version.
+# A snapshot dictates the compiler version and the set of packages
+# to be used for project dependencies. For example:
+#
+# snapshot: lts-24.43
+# snapshot: nightly-2026-05-29
+# snapshot: ghc-9.10.3
+#
+# The location of a snapshot can be provided as a file or url. Stack assumes
+# a snapshot provided as a file might change, whereas a url resource does not.
+#
+# snapshot: ./custom-snapshot.yaml
+# snapshot: https://example.com/snapshots/2024-01-01.yaml
+snapshot:
+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/24/58.yaml
+
+# User packages to be built.
+# Various formats can be used as shown in the example below.
+#
+# packages:
+# - some-directory
+# - https://example.com/foo/bar/baz-0.0.2.tar.gz
+# subdirs:
+# - auto-update
+# - wai
+packages:
+- xmonad
+- xmonad-contrib
+# Dependency packages to be pulled from upstream that are not in the snapshot.
+# These entries can reference officially published versions as well as
+# forks / in-progress versions pinned to a git hash. For example:
+#
+# extra-deps:
+# - acme-missiles-0.3
+# - git: https://github.com/commercialhaskell/stack.git
+# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
+#
+# extra-deps: []
+
+# Override default flag values for project packages and extra-deps
+# flags: {}
+
+# Extra package databases containing global packages
+# extra-package-dbs: []
+
+# Control whether we use the GHC we find on the path
+# system-ghc: true
+#
+# Require a specific version of Stack, using version ranges
+# require-stack-version: -any # Default
+# require-stack-version: ">=3.11"
+#
+# Override the architecture used by Stack, especially useful on Windows
+# arch: i386
+# arch: x86_64
+#
+# Extra directories used by Stack for building
+# extra-include-dirs: [/path/to/dir]
+# extra-lib-dirs: [/path/to/dir]
+#
+# Allow a newer minor version of GHC than the snapshot specifies
+# compiler-check: newer-minor
diff --git a/xmonad/.config/xmonad/stack.yaml.lock b/xmonad/.config/xmonad/stack.yaml.lock
new file mode 100644
index 0000000..b0ae253
--- /dev/null
+++ b/xmonad/.config/xmonad/stack.yaml.lock
@@ -0,0 +1,13 @@
+# This file was autogenerated by Stack.
+# You should not edit this file by hand.
+# For more information, please see the documentation at:
+# https://docs.haskellstack.org/en/stable/topics/lock_files
+
+packages: []
+snapshots:
+- completed:
+ sha256: d4d51e01349a3e51b7aa6c500a9da8b0b578043badaec1d5f210cfe27672f18d
+ size: 732465
+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/24/58.yaml
+ original:
+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/24/58.yaml
diff --git a/xmonad/.config/xmonad/xmonad.hs b/xmonad/.config/xmonad/xmonad.hs
new file mode 100644
index 0000000..022a9ee
--- /dev/null
+++ b/xmonad/.config/xmonad/xmonad.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# OPTIONS_GHC -Wno-deprecations #-}
+
+import Data.Map qualified as M
+import System.Exit (exitSuccess)
+import XMonad
+import XMonad.Actions.CycleWS (nextScreen, shiftNextScreen)
+import XMonad.Hooks.EwmhDesktops
+import XMonad.Hooks.InsertPosition
+import XMonad.Hooks.ManageHelpers (isDialog)
+import XMonad.Hooks.StatusBar
+import XMonad.Hooks.StatusBar.PP
+import XMonad.Layout.NoBorders (smartBorders)
+import XMonad.Layout.Renamed (Rename (Replace), renamed)
+import XMonad.StackSet qualified as W
+import XMonad.Util.EZConfig (additionalKeysP)
+import XMonad.Util.Ungrab
+
+myModMask :: KeyMask
+myModMask = mod4Mask
+
+myTerminal :: String
+myTerminal = "alacritty"
+
+myBorderWidth :: Dimension
+myBorderWidth = 2
+
+colBg, colFg, colAccent, colGrey :: String
+colBg = "#101010"
+colFg = "#cccccc"
+colAccent = "#708090"
+colGrey = "#606060"
+
+myWorkspaces :: [String]
+myWorkspaces = map show [1 .. 9 :: Int]
+
+myLayout = renamed [Replace "[]="] tiled ||| renamed [Replace "[M]"] Full
+ where
+ tiled = Tall nmaster delta ratio
+ nmaster = 1
+ ratio = 0.50
+ delta = 3 / 100
+
+myManageHook :: ManageHook
+myManageHook =
+ composeAll
+ [ className =? "confirmreset" --> doFloat,
+ className =? "makebranch" --> doFloat,
+ className =? "maketag" --> doFloat,
+ className =? "ssh-askpass" --> doFloat,
+ className =? "Blueman-manager" --> doFloat,
+ className =? "Pavucontrol" --> doFloat,
+ title =? "branchdialog" --> doFloat,
+ title =? "pinentry" --> doFloat,
+ isDialog --> doFloat
+ ]
+
+myToggleFloat :: Window -> X ()
+myToggleFloat w = windows $ \s ->
+ if M.member w (W.floating s)
+ then W.sink w s
+ else W.float w (W.RationalRect 0.1 0.1 0.8 0.8) s
+
+myXmobarPP :: PP
+myXmobarPP =
+ def
+ { ppCurrent = xmobarColor colBg colAccent . wrap " " " ",
+ ppHidden = xmobarColor colFg "" . wrap " " " ",
+ ppHiddenNoWindows = xmobarColor colGrey "" . wrap " " " ",
+ ppUrgent = xmobarColor "#ff5555" "" . wrap " " " ",
+ ppTitle = xmobarColor colFg "" . shorten 60,
+ ppLayout = xmobarColor colAccent "",
+ ppSep = xmobarColor colGrey "" " "
+ }
+
+main :: IO ()
+main =
+ xmonad
+ . ewmhFullscreen
+ . ewmh
+ . withEasySB (statusBarProp "xmobar" (pure myXmobarPP)) defToggleStrutsKey
+ $ myConfig
+
+startup :: X ()
+startup = spawn "xset m 0"
+
+myConfig =
+ def
+ { modMask = myModMask,
+ terminal = myTerminal,
+ borderWidth = myBorderWidth,
+ normalBorderColor = colGrey,
+ focusedBorderColor = colAccent,
+ workspaces = myWorkspaces,
+ layoutHook = smartBorders myLayout,
+ manageHook = insertPosition End Newer <> myManageHook <+> manageHook def,
+ startupHook = startup
+ }
+ `additionalKeysP` [ ("M-<Return>", spawn myTerminal),
+ ("M-p", spawn "j4-dmenu-desktop"),
+ ("M-t", spawn "thunderbird"),
+ ("M-c", spawn (myTerminal ++ " -e vim")),
+ ("M-w", spawn "vivaldi"),
+ ("M-e", spawn "thunar"),
+ ("M-s", spawn "vesktop"),
+ ("M-x", spawn "loginctl lock-session"),
+ ("M-m", spawn (myTerminal ++ " -e ncmpcpp")),
+ ("<Print>", spawn "screenshot"),
+ ("S-<Print>", spawn "screenrecord"),
+ ("M-S-s", unGrab *> spawn "screenshot select"),
+ ("M-S-r", unGrab *> spawn "screenrecord select"),
+ ("M-q", kill),
+ ("M-f", withFocused myToggleFloat),
+ ("M-j", windows W.focusDown),
+ ("M-k", windows W.focusUp),
+ ("M-h", sendMessage Shrink),
+ ("M-l", sendMessage Expand),
+ ("M-S-h", sendMessage (IncMasterN 1)),
+ ("M-S-l", sendMessage (IncMasterN (-1))),
+ ("M-<Tab>", sendMessage NextLayout),
+ ("M-.", nextScreen),
+ ("M-S-.", shiftNextScreen),
+ ("M-C-q", io exitSuccess),
+ ("<XF86AudioRaiseVolume>", spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
+ ("<XF86AudioLowerVolume>", spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
+ ("<XF86AudioMute>", spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
+ ("<XF86AudioPlay>", spawn "playerctl play-pause"),
+ ("<XF86AudioNext>", spawn "playerctl next"),
+ ("<XF86AudioPrev>", spawn "playerctl previous"),
+ ("<XF86AudioStop>", spawn "playerctl stop"),
+ ("<XF86MonBrightnessUp>", spawn "brightnessctl set +5%"),
+ ("<XF86MonBrightnessDown>", spawn "brightnessctl set 5%-")
+ ]