mirror of https://github.com/E-Almqvist/dotfiles
parent
70008fdf19
commit
1bbba1fcec
@ -1 +1,9 @@ |
|||||||
|
# (n)Vim junk |
||||||
nvim/.config/nvim/plugged/ |
nvim/.config/nvim/plugged/ |
||||||
|
|
||||||
|
# XMonad junk |
||||||
|
xmonad/.xmonad/*.hi |
||||||
|
xmonad/.xmonad/*.errors |
||||||
|
xmonad/.xmonad/*.o |
||||||
|
xmonad/.xmonad/xmonad-x86_64-linux |
||||||
|
xmonad/.xmonad/build-x86_64-linux/ |
||||||
|
@ -0,0 +1,30 @@ |
|||||||
|
# Keyboard layout |
||||||
|
setxkbmap se & |
||||||
|
|
||||||
|
# Display settings |
||||||
|
$HOME/.screenlayout/layout.sh & |
||||||
|
|
||||||
|
# Compositor |
||||||
|
$HOME/.config/picom/launch & |
||||||
|
|
||||||
|
# Background |
||||||
|
nitrogen --restore & |
||||||
|
|
||||||
|
# Notification daemon |
||||||
|
dunst & |
||||||
|
|
||||||
|
# Anti sleep |
||||||
|
xset s off & |
||||||
|
xset -dpms & |
||||||
|
|
||||||
|
# EWW widgets etc |
||||||
|
#eww daemon |
||||||
|
#eww open bar |
||||||
|
|
||||||
|
# Polybar |
||||||
|
$HOME/.config/polybar/launch & |
||||||
|
|
||||||
|
# Keyring |
||||||
|
eval $(gnome-keyring-daemon --start) |
||||||
|
export SSH_AUTH_SOCK |
||||||
|
|
@ -0,0 +1,265 @@ |
|||||||
|
-- |
||||||
|
-- xmonad example config file. |
||||||
|
-- |
||||||
|
-- A template showing all available configuration hooks, |
||||||
|
-- and how to override the defaults in your own xmonad.hs conf file. |
||||||
|
-- |
||||||
|
-- Normally, you'd only override those defaults you care about. |
||||||
|
-- |
||||||
|
import Data.Monoid |
||||||
|
import System.Exit |
||||||
|
import XMonad |
||||||
|
|
||||||
|
import XMonad.Hooks.ManageDocks |
||||||
|
import XMonad.Util.SpawnOnce |
||||||
|
|
||||||
|
import qualified Data.Map as M |
||||||
|
import XMonad.Hooks.EwmhDesktops (ewmh) |
||||||
|
import XMonad.Hooks.InsertPosition |
||||||
|
import XMonad.Layout.Fullscreen (fullscreenSupport) |
||||||
|
import XMonad.Layout.IndependentScreens (withScreens) |
||||||
|
import qualified XMonad.StackSet as W |
||||||
|
import XMonad.Util.Run (spawnPipe) |
||||||
|
|
||||||
|
-- The preferred terminal program, which is used in a binding below and by |
||||||
|
-- certain contrib modules. |
||||||
|
-- |
||||||
|
myTerminal = "alacritty" |
||||||
|
|
||||||
|
-- Whether focus follows the mouse pointer. |
||||||
|
myFocusFollowsMouse :: Bool |
||||||
|
myFocusFollowsMouse = True |
||||||
|
|
||||||
|
-- Whether clicking on a window to focus also passes the click to the window |
||||||
|
myClickJustFocuses :: Bool |
||||||
|
myClickJustFocuses = True |
||||||
|
|
||||||
|
-- Width of the window border in pixels. |
||||||
|
-- |
||||||
|
myBorderWidth = 1 |
||||||
|
|
||||||
|
-- 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 |
||||||
|
|
||||||
|
-- The default number of workspaces (virtual screens) and their names. |
||||||
|
-- By default we use numeric strings, but any string may be used as a |
||||||
|
-- workspace name. The number of workspaces is determined by the length |
||||||
|
-- of this list. |
||||||
|
-- |
||||||
|
-- A tagging example: |
||||||
|
-- |
||||||
|
-- > workspaces = ["web", "irc", "code" ] ++ map show [4..9] |
||||||
|
-- |
||||||
|
myWorkspaces = map show [1 .. 9] |
||||||
|
|
||||||
|
-- Border colors for unfocused and focused windows, respectively. |
||||||
|
-- |
||||||
|
myNormalBorderColor = "#282828" |
||||||
|
|
||||||
|
myFocusedBorderColor = "#484848" |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
-- Key bindings. Add, modify or remove key bindings here. |
||||||
|
-- |
||||||
|
myKeys conf@(XConfig {XMonad.modMask = modm}) = |
||||||
|
M.fromList $ |
||||||
|
-- launch a terminal |
||||||
|
[ ((modm, xK_Return), spawn $ XMonad.terminal conf) |
||||||
|
-- launch rofi app launcher |
||||||
|
, ((modm, xK_d), spawn "rofi -show drun") |
||||||
|
-- launch rofi ssh |
||||||
|
, ((modm, xK_s), spawn "rofi -show ssh") |
||||||
|
-- launch rofi shell |
||||||
|
, ((modm, xK_p), spawn "rofi -show run") |
||||||
|
-- pause cmus |
||||||
|
, ((modm, xK_u), spawn "cmus-remote --pause") |
||||||
|
-- spawn firefox |
||||||
|
, ((modm, xK_b), spawn "firefox") |
||||||
|
-- screenshot |
||||||
|
, ((modm, xK_Print), spawn "flameshot gui") |
||||||
|
-- launch gmrun |
||||||
|
, ((modm .|. shiftMask, xK_p), spawn "gmrun") |
||||||
|
-- close focused window |
||||||
|
, ((modm .|. shiftMask, xK_q), kill) |
||||||
|
-- Rotate through the available layout algorithms |
||||||
|
, ((modm, xK_space), sendMessage NextLayout) |
||||||
|
-- Reset the layouts on the current workspace to default |
||||||
|
, ((modm .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf) |
||||||
|
-- Resize viewed windows to the correct size |
||||||
|
, ((modm, xK_n), refresh) |
||||||
|
-- Move focus to the next window |
||||||
|
, ((modm, xK_Tab), windows W.focusDown) |
||||||
|
-- Move focus to the next window |
||||||
|
, ((modm, xK_j), windows W.focusDown) |
||||||
|
-- Move focus to the previous window |
||||||
|
, ((modm, xK_k), windows W.focusUp) |
||||||
|
-- Move focus to the master window |
||||||
|
, ((modm, xK_m), windows W.focusMaster) |
||||||
|
-- Swap the focused window and the master window |
||||||
|
, ((modm .|. shiftMask, xK_Return), windows W.swapMaster) |
||||||
|
-- Swap the focused window with the next window |
||||||
|
, ((modm .|. shiftMask, xK_j), windows W.swapDown) |
||||||
|
-- Swap the focused window with the previous window |
||||||
|
, ((modm .|. shiftMask, xK_k), windows W.swapUp) |
||||||
|
-- Shrink the master area |
||||||
|
, ((modm, xK_h), sendMessage Shrink) |
||||||
|
-- Expand the master area |
||||||
|
, ((modm, xK_l), sendMessage Expand) |
||||||
|
-- Push window back into tiling |
||||||
|
, ((modm, xK_t), withFocused $ windows . W.sink) |
||||||
|
-- Increment the number of windows in the master area |
||||||
|
, ((modm, xK_comma), sendMessage (IncMasterN 1)) |
||||||
|
-- Deincrement the number of windows in the master area |
||||||
|
, ((modm, xK_period), sendMessage (IncMasterN (-1))) |
||||||
|
-- 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) |
||||||
|
-- Quit xmonad |
||||||
|
--, ((modm .|. shiftMask, xK_q), io exitSuccess) |
||||||
|
-- Restart xmonad |
||||||
|
, ( (modm .|. shiftMask, xK_x) |
||||||
|
, spawn |
||||||
|
"xmonad --recompile; xmonad --restart; notify-send \"XMonad\" \"Recompiled & restarted.\"") |
||||||
|
] ++ |
||||||
|
-- |
||||||
|
-- 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 (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)] |
||||||
|
] |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
-- 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-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) |
||||||
|
-- you may also bind events to the mouse scroll wheel (button4 and button5) |
||||||
|
] |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
-- Layouts: |
||||||
|
-- You can specify and transform your layouts by modifying these values. |
||||||
|
-- If you change layout bindings be sure to use 'mod-shift-space' after |
||||||
|
-- restarting (with 'mod-q') to reset your layout state to the new |
||||||
|
-- defaults, as xmonad preserves your old layout settings by default. |
||||||
|
-- |
||||||
|
-- The available layouts. Note that each layout is separated by |||, |
||||||
|
-- which denotes layout choice. |
||||||
|
-- |
||||||
|
myLayout = avoidStruts $ tiled ||| Mirror tiled ||| Full |
||||||
|
where |
||||||
|
-- default tiling algorithm partitions the screen into two panes |
||||||
|
tiled = Tall nmaster delta ratio |
||||||
|
-- The default number of windows in the master pane |
||||||
|
nmaster = 1 |
||||||
|
-- Default proportion of screen occupied by master pane |
||||||
|
ratio = 3 / 4 |
||||||
|
-- Percent of screen to increment by when resizing panes |
||||||
|
delta = 3 / 100 |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
-- Window rules: |
||||||
|
-- Execute arbitrary actions and WindowSet manipulations when managing |
||||||
|
-- a new window. You can use this to, for example, always float a |
||||||
|
-- particular program, or have a client always appear on a particular |
||||||
|
-- workspace. |
||||||
|
-- |
||||||
|
-- To find the property name associated with a program, use |
||||||
|
-- > xprop | grep WM_CLASS |
||||||
|
-- and click on the client you're interested in. |
||||||
|
-- |
||||||
|
-- To match on the WM_NAME, you can use 'title' in the same way that |
||||||
|
-- 'className' and 'resource' are used below. |
||||||
|
-- |
||||||
|
myManageHook = |
||||||
|
composeAll |
||||||
|
[ className =? "MPlayer" --> doFloat |
||||||
|
, className =? "Gimp" --> doFloat |
||||||
|
, resource =? "desktop_window" --> doIgnore |
||||||
|
, resource =? "kdesktop" --> doIgnore |
||||||
|
, insertPosition End Newer |
||||||
|
] |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
-- Event handling |
||||||
|
-- * EwmhDesktops users should change this to ewmhDesktopsEventHook |
||||||
|
-- |
||||||
|
-- Defines a custom handler function for X Events. The function should |
||||||
|
-- return (All True) if the default handler is to be run afterwards. To |
||||||
|
-- combine event hooks use mappend or mconcat from Data.Monoid. |
||||||
|
-- |
||||||
|
myEventHook = mempty |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
-- Status bars and logging |
||||||
|
-- Perform an arbitrary action on each internal state change or X event. |
||||||
|
-- See the 'XMonad.Hooks.DynamicLog' extension for examples. |
||||||
|
-- |
||||||
|
myLogHook = return () |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
-- Startup hook |
||||||
|
-- Perform an arbitrary action each time xmonad starts or is restarted |
||||||
|
-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize |
||||||
|
-- per-workspace layout choices. |
||||||
|
-- |
||||||
|
-- By default, do nothing. |
||||||
|
myStartupHook = spawnOnce "$HOME/.xmonad/bin/autostart.sh" |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
-- Now run xmonad with all the defaults we set up. |
||||||
|
-- Run xmonad with the settings you specify. No need to modify this. |
||||||
|
-- |
||||||
|
main = xmonad $ fullscreenSupport $ docks $ ewmh defaults |
||||||
|
|
||||||
|
-- A structure containing your configuration settings, overriding |
||||||
|
-- fields in the default config. Any you don't override, will |
||||||
|
-- use the defaults defined in xmonad/XMonad/Config.hs |
||||||
|
-- |
||||||
|
-- No need to modify this. |
||||||
|
-- |
||||||
|
defaults = |
||||||
|
def |
||||||
|
-- simple stuff |
||||||
|
{ terminal = myTerminal |
||||||
|
, focusFollowsMouse = myFocusFollowsMouse |
||||||
|
, clickJustFocuses = myClickJustFocuses |
||||||
|
, borderWidth = myBorderWidth |
||||||
|
, modMask = myModMask |
||||||
|
, workspaces = withScreens 2 myWorkspaces |
||||||
|
, normalBorderColor = myNormalBorderColor |
||||||
|
, focusedBorderColor = myFocusedBorderColor |
||||||
|
-- key bindings |
||||||
|
, keys = myKeys |
||||||
|
, mouseBindings = myMouseBindings |
||||||
|
-- hooks, layouts |
||||||
|
, layoutHook = myLayout |
||||||
|
, manageHook = myManageHook |
||||||
|
, handleEventHook = myEventHook |
||||||
|
, logHook = myLogHook |
||||||
|
, startupHook = myStartupHook |
||||||
|
} |
Loading…
Reference in new issue